simpo-component-library 3.6.320 → 3.6.324

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 (232) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
  3. package/esm2022/lib/components/document/document.component.mjs +3 -3
  4. package/esm2022/lib/components/image-loading/image-loading.component.mjs +3 -3
  5. package/esm2022/lib/components/payment-details/payment-details.component.mjs +3 -3
  6. package/esm2022/lib/constants/business.constant.mjs +1 -1
  7. package/esm2022/lib/directive/alignment.directive.mjs +1 -1
  8. package/esm2022/lib/directive/blur-content.directive.mjs +1 -1
  9. package/esm2022/lib/directive/borderlessImage.directive.mjs +1 -1
  10. package/esm2022/lib/directive/button-directive.directive.mjs +1 -1
  11. package/esm2022/lib/directive/button-editor.directive.mjs +1 -1
  12. package/esm2022/lib/directive/color.directive.mjs +1 -1
  13. package/esm2022/lib/directive/column-directive.directive.mjs +1 -1
  14. package/esm2022/lib/directive/container-alignment.directive.mjs +1 -1
  15. package/esm2022/lib/directive/container-fir.directive.mjs +1 -1
  16. package/esm2022/lib/directive/content-title-spacing.directive.mjs +1 -1
  17. package/esm2022/lib/directive/contenteditable.directive.mjs +1 -1
  18. package/esm2022/lib/directive/corner-directive.mjs +1 -1
  19. package/esm2022/lib/directive/height.directive.mjs +1 -1
  20. package/esm2022/lib/directive/hover-animation.directive.mjs +1 -1
  21. package/esm2022/lib/directive/hoverborder.directive.mjs +1 -1
  22. package/esm2022/lib/directive/icon-directive.directive.mjs +2 -1
  23. package/esm2022/lib/directive/image-container.directive.mjs +1 -1
  24. package/esm2022/lib/directive/image-directive.directive.mjs +2 -2
  25. package/esm2022/lib/directive/image-editor.directive.mjs +1 -1
  26. package/esm2022/lib/directive/image-position.directive.mjs +1 -1
  27. package/esm2022/lib/directive/merge-header.directive.mjs +1 -1
  28. package/esm2022/lib/directive/position-layout-directive.directive.mjs +1 -1
  29. package/esm2022/lib/directive/set-dynamic-background.directive.mjs +4 -7
  30. package/esm2022/lib/directive/spacing-around.directive.mjs +2 -2
  31. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +1 -1
  32. package/esm2022/lib/directive/spacing.directive.mjs +1 -1
  33. package/esm2022/lib/directive/sticky-directive.mjs +1 -1
  34. package/esm2022/lib/directive/text-background-directive.directive.mjs +1 -1
  35. package/esm2022/lib/directive/text-size.directive.mjs +1 -1
  36. package/esm2022/lib/directive/translate-onhover.directive.mjs +1 -1
  37. package/esm2022/lib/directive/wrap-containers.directive.mjs +1 -1
  38. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
  39. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +3 -3
  40. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -19
  41. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
  42. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +3 -3
  43. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.model.mjs +1 -1
  44. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +4 -4
  45. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  46. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
  47. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  48. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
  49. package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
  50. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +3 -3
  51. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
  52. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.component.mjs +3 -3
  53. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.model.mjs +1 -1
  54. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +3 -3
  55. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  56. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +3 -3
  57. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
  58. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  59. package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +3 -3
  60. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +3 -3
  61. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +1 -1
  62. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
  63. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
  64. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +3 -3
  65. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
  66. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
  67. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  68. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +3 -3
  69. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  70. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.component.mjs +18 -227
  71. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.model.mjs +1 -1
  72. package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +14 -193
  73. package/esm2022/lib/ecommerce/sections/scheme-selection/scheme-selection.component.mjs +3 -3
  74. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +3 -3
  75. package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +3 -3
  76. package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +1 -1
  77. package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +3 -3
  78. package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +1 -1
  79. package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +3 -3
  80. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +22 -179
  81. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  82. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +31 -90
  83. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
  84. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
  85. package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
  86. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
  87. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  88. package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
  89. package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
  90. package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
  91. package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
  92. package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
  93. package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
  94. package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
  95. package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
  96. package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
  97. package/esm2022/lib/elements/address-list/address-list.component.mjs +3 -3
  98. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  99. package/esm2022/lib/elements/button/button.component.mjs +3 -3
  100. package/esm2022/lib/elements/button/button.model.mjs +1 -1
  101. package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +3 -3
  102. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  103. package/esm2022/lib/elements/editor-service.service.mjs +1 -1
  104. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
  105. package/esm2022/lib/elements/image-editor/image-editor.component.mjs +4 -3
  106. package/esm2022/lib/elements/index.mjs +1 -1
  107. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +3 -3
  108. package/esm2022/lib/elements/list-home-appointment/list-home-appointment.component.mjs +3 -3
  109. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
  110. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +3 -3
  111. package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +3 -3
  112. package/esm2022/lib/elements/property/property.component.mjs +3 -3
  113. package/esm2022/lib/elements/schedule-video-call/schedule-video-call.component.mjs +3 -3
  114. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  115. package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +3 -3
  116. package/esm2022/lib/elements/text/text.component.mjs +3 -3
  117. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +3 -3
  118. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
  119. package/esm2022/lib/pipes/amount.pipe.mjs +1 -1
  120. package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
  121. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  122. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
  123. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +3 -3
  124. package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
  125. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  126. package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
  127. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  128. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
  129. package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
  130. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
  131. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  132. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  133. package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
  134. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  135. package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
  136. package/esm2022/lib/sections/footer/footer.component.mjs +3 -3
  137. package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
  138. package/esm2022/lib/sections/header-section/header-section.component.mjs +12 -46
  139. package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
  140. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  141. package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
  142. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  143. package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
  144. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  145. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  146. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  147. package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
  148. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
  149. package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
  150. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  151. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  152. package/esm2022/lib/sections/moving-text/moving-text.component.mjs +3 -3
  153. package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
  154. package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
  155. package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
  156. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
  157. package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
  158. package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +3 -3
  159. package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +1 -1
  160. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  161. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  162. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
  163. package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
  164. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  165. package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
  166. package/esm2022/lib/sections/property-component/property-component.component.mjs +3 -3
  167. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  168. package/esm2022/lib/sections/property-list/property-list.component.mjs +3 -3
  169. package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
  170. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -3
  171. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  172. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +3 -3
  173. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
  174. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
  175. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  176. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
  177. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
  178. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  179. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  180. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
  181. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
  182. package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
  183. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
  184. package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
  185. package/esm2022/lib/sections/text-section/text-section.component.mjs +3 -3
  186. package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
  187. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +3 -3
  188. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
  189. package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -3
  190. package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
  191. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
  192. package/esm2022/lib/services/cart.service.mjs +1 -1
  193. package/esm2022/lib/services/endUser.service.mjs +1 -1
  194. package/esm2022/lib/services/image-upload-service.service.mjs +1 -1
  195. package/esm2022/lib/services/rest.service.mjs +8 -81
  196. package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
  197. package/esm2022/lib/services/storage.service.mjs +1 -8
  198. package/esm2022/lib/styles/index.mjs +1 -2
  199. package/esm2022/lib/styles/style.model.mjs +1 -1
  200. package/esm2022/lib/styles/types.mjs +1 -1
  201. package/esm2022/lib/tokens/api-token.mjs +1 -1
  202. package/esm2022/public-api.mjs +1 -3
  203. package/fesm2022/simpo-component-library.mjs +308 -1372
  204. package/fesm2022/simpo-component-library.mjs.map +1 -1
  205. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -2
  206. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
  207. package/lib/ecommerce/sections/returns-calculator/returns-calculator.component.d.ts +3 -41
  208. package/lib/ecommerce/sections/scheme-details/scheme-details.component.d.ts +3 -35
  209. package/lib/ecommerce/sections/user-profile/user-profile.component.d.ts +2 -19
  210. package/lib/ecommerce/sections/verify-payment/verify-payment.component.d.ts +0 -4
  211. package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
  212. package/lib/elements/pricing-s1/pricing-s1.component.d.ts +1 -1
  213. package/lib/sections/header-section/header-section.component.d.ts +1 -3
  214. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
  215. package/lib/services/rest.service.d.ts +2 -18
  216. package/lib/services/storage.service.d.ts +0 -2
  217. package/lib/styles/index.d.ts +1 -2
  218. package/package.json +1 -1
  219. package/public-api.d.ts +0 -2
  220. package/simpo-component-library-3.6.324.tgz +0 -0
  221. package/src/lib/styles/global-styles.css +263 -272
  222. package/esm2022/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.mjs +0 -37
  223. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +0 -108
  224. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.model.mjs +0 -2
  225. package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +0 -265
  226. package/esm2022/lib/sections/scheme-detail/scheme-detail.modal.mjs +0 -2
  227. package/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.d.ts +0 -14
  228. package/lib/ecommerce/sections/schemes/schemes.component.d.ts +0 -28
  229. package/lib/ecommerce/sections/schemes/schemes.component.model.d.ts +0 -21
  230. package/lib/sections/scheme-detail/scheme-detail.component.d.ts +0 -68
  231. package/lib/sections/scheme-detail/scheme-detail.modal.d.ts +0 -17
  232. package/simpo-component-library-3.6.320.tgz +0 -0
@@ -118,6 +118,7 @@ export class ImageEditorComponent {
118
118
  });
119
119
  }
120
120
  changeIconColor() {
121
+ debugger;
121
122
  this.eventsService.iconChanged.emit({ id: this.sectionId + this.iconData.id, icon: this.iconData });
122
123
  }
123
124
  horizontalPosition() {
@@ -221,13 +222,13 @@ export class ImageEditorComponent {
221
222
  }
222
223
  }
223
224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageEditorComponent, deps: [{ token: i1.EventsService }, { token: i2.ElementServiceService }, { token: i3.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
224
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageEditorComponent, isStandalone: true, selector: "simpo-image-editor", ngImport: i0, template: "<section class=\"main-section\">\r\n <div class=\"header-section d-flex justify-content-between align-items-center\">\r\n <div class=\"head-text\">Image Settings</div>\r\n <mat-icon class=\"d-flex align-items-center justify-content-center f-18 cp\"\r\n (click)=\"dialogRef.close()\">close</mat-icon>\r\n </div>\r\n <div>\r\n <!-- <p class=\"heading mb-0\">Image</p> -->\r\n <div class=\"upload-image cp\" *ngIf=\"!imageData.url && !iconData.url\" (click)=\"updateImage()\">\r\n <img loading=\"lazy\"\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/547500c1744698830343upload-one%20%281%29.png\"\r\n alt=\"\">\r\n <p class=\"upload-text mb-0\">Upload a file</p>\r\n <p class=\"upload-text mb-0\">or select an existing one</p>\r\n <span class=\"upload-text\">up to 32MB</span>\r\n </div>\r\n <div class=\"sec d-flex align-items-center\" *ngIf=\"imageData.url || iconData.url\">\r\n <ng-container *ngIf=\"!imgLoader\">\r\n <img [src]=\"imageData.url || iconData.url\" [alt]=\"imageData.altText ?? ''\">\r\n <div class=\"repalce-image cursor-pointer\" (click)=\"updateImage()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" width=\"24\"\r\n height=\"24\" class=\"icon w-4 h-4\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\r\n d=\"m4 16 4.58579-4.5858c.78104-.781 2.04741-.781 2.82841 0L16 16m-2-2 1.5858-1.5858c.781-.781 2.0474-.781 2.8284 0L20 14m-6-6h.01M6 20h12c1.1046 0 2-.8954 2-2V6c0-1.10457-.8954-2-2-2H6c-1.10457 0-2 .89543-2 2v12c0 1.1046.89543 2 2 2Z\">\r\n </path>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"delete-image cursor-pointer \" (click)=\"deleteImage()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"#ffffff\" viewBox=\"0 0 24 24\" width=\"24\"\r\n height=\"24\" class=\"icon h-4 w-4\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\r\n d=\"m19 7-.8673 12.1425C18.0579 20.1891 17.187 21 16.1378 21H7.86224c-1.04928 0-1.92016-.8109-1.99492-1.8575L5 7m5 4v6m4-6v6m1-10V4c0-.55228-.4477-1-1-1h-4c-.55228 0-1 .44772-1 1v3M4 7h16\">\r\n </path>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"imgLoader\">\r\n <div class=\"upload_spinner d-flex w-100 h-100 justify-content-center align-items-center\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!data.showIcon\">\r\n <div class=\"w-100 p-0-10 mb-22\" *ngIf=\"imageData.hasOwnProperty('altText')\">\r\n <p class=\"heading mb-2\">Alt text</p>\r\n <input type=\"text\" placeholder=\"Enter alt text\" class=\"input-field w-100\" [(ngModel)]=\"imageData.altText\">\r\n <div class=\"sub-text\">When the image fails to load, this text will be displayed.</div>\r\n </div>\r\n\r\n <div class=\"image mb-22\" *ngIf=\"imageData.hasOwnProperty('position')\">\r\n <p class=\"heading mb-1\">Image Position</p>\r\n <div class=\"horizontal-action\">\r\n <label>Horizontal</label>\r\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\r\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.x\"\r\n (input)=\"horizontalPosition()\" class=\"w-75\">\r\n </div>\r\n </div>\r\n <div class=\"horizontal-action\" style=\"margin-top: 5px;\">\r\n <label>Vertical</label>\r\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\r\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.y\"\r\n (input)=\"horizontalPosition()\" class=\"w-75\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"groups cp px-3\">\r\n <div *ngFor=\"let type of linkType\" [ngClass]=\"{'selectedType' : type.type === selectedType}\"\r\n (click)=\"changeType(type.type)\">{{type.type}}</div>\r\n </div>\r\n <div class=\"field-container mt-3 mx-3\">\r\n <div *ngIf=\"link.linkType === RedirectionLink.Page\">\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Page</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\" (change)=\"onPageChange($event)\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let page of templatePage\" [value]=\"page.id\" style=\"padding: 10px;\">\r\n {{page.pageName}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"pageName == 'Product List'\">\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Collection</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"collectionPath\" (ngModelChange)=\"addCollectionToPath()\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let coll of collectionList\" style=\"padding: 10px;\" [value]=\"coll.collectionName\">\r\n {{coll?.collectionName}}</option>\r\n </select>\r\n </div>\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Category</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"categoryPath\" (ngModelChange)=\"addCategoryToPath()\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let coll of categoryList\" style=\"padding: 10px;\" [value]=\"coll.categoryName\">\r\n {{coll?.categoryName}}</option>\r\n </select>\r\n </div>\r\n </ng-container>\r\n <!-- <div class=\"sub-text\">Select from your existing pages</div> -->\r\n </div>\r\n <div *ngIf=\"link.linkType === RedirectionLink.section\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Section</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\">\r\n <option value=\"\" selected>Select the Section</option>\r\n <option *ngFor=\"let section of templatePage[0]?.components\" [value]=\"section.id\">{{section.sectionName}}\r\n </option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <label class=\"input-label-2\">Open in a new browser tab</label>\r\n <div class=\"form-check form-switch ml-auto\">\r\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"link.newTab\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"link.linkType === RedirectionLink.External || link.linkType === RedirectionLink.Email || link.linkType === RedirectionLink.Phone\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Select type</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.linkType\">\r\n <option value=\"\" selected>Select the Type</option>\r\n <option *ngFor=\"let type of externalLinkType\" [value]=\"type.type\">{{type.type}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <label class=\"input-label mb-2\">{{link.linkType === RedirectionLink.External ? 'Website' : link.linkType ===\r\n RedirectionLink.Email ? 'Email Address' : 'Phone Number'}}</label>\r\n <input type=\"text\" class=\"input-text\" [(ngModel)]=\"link.redirectionUrl\"\r\n [placeholder]=\"link.linkType === RedirectionLink.External ? 'example : https://facebook.com': ''\">\r\n </div>\r\n\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngIf=\"data.showIcon\">\r\n <div class=\"icon-color px-3 mb-3 d-flex flex-column justify-content-center align-items-center\">\r\n <label class=\"input-label-1 mb-4 w-100\">Icon Color</label>\r\n <div [style.backgroundColor]=\"iconData.color\" class=\"custom-input\" (click)=\"colorInput.click()\"></div>\r\n <input type=\"color\" [(ngModel)]=\"iconData.color\" (ngModelChange)=\"changeIconColor()\" class=\"input-text d-none\"\r\n #colorInput />\r\n </div>\r\n\r\n <div class=\"background-on d-flex justify-content-between px-3 mb-2\">\r\n <label class=\"input-label-1\">Show Background</label>\r\n <div class=\"form-check form-switch ml-auto\">\r\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"iconData.showBackground\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"icon-background px-3 d-flex flex-column justify-content-center align-items-center\"\r\n *ngIf=\"iconData.showBackground\">\r\n <label class=\"input-label-1 mb-3 w-100\">Icon Background</label>\r\n <div [style.backgroundColor]=\"iconData.backgroundColor\" class=\"custom-input\" (click)=\"colorInput1.click()\"></div>\r\n <input type=\"color\" [(ngModel)]=\"iconData.backgroundColor\" class=\"input-text d-none\" #colorInput1 />\r\n </div>\r\n </ng-container>\r\n\r\n\r\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}:host{--grey-color: rgba(250, 250, 250, 1)}.custom-input{height:35px;width:100%;border-radius:2rem;box-shadow:0 1px 3px #3c404326,0 1px 2px #3c404326}.heading{color:#000;font-size:17px;font-weight:600}.upload-text{background:var(--primary-bg-color);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:500}.upload-image{border:3px dashed rgba(44,44,44,.6);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;margin:10px 10px 22px;border-radius:20px;box-shadow:#0000000d 0 1px 2px}.upload-image img{margin-bottom:8px;height:40px}.mb-0{margin-bottom:0!important}.desc{color:#fafafa;font-size:15px}.input-field{font-size:14px;outline:none;border:unset;border-radius:5px;padding:10px;color:#090909e6;background:#fafafa}.horizontal-action{display:flex;justify-content:space-between;align-items:center}.horizontal-action label{width:25%;font-size:14px;font-weight:400!important}.main-section{display:flex;flex-direction:column}.image{display:flex;flex-direction:column;gap:5px;padding:0 10px}.slider{width:70%}.cp{cursor:pointer}.sec{padding:10px 10px 22px;position:relative}.sec img{width:100%;height:200px;border-radius:20px}.delete-image{background-color:#d92d20;width:30px;height:30px;border-radius:6px;display:flex;justify-content:center;align-items:center;position:absolute;top:20px;right:20px}.repalce-image{display:flex;align-items:center;background:#fff;padding:2px;border-radius:6px;position:absolute;bottom:30px;left:20px}.f-18{font-size:18px}.header-section{padding:10px;box-shadow:0 0 4px #00000040}.header-section .head-text{font-weight:600;font-size:15px;color:#000}.header-section mat-icon{color:#2d264b}.p-0-10{padding:0 10px}.sub-text{font-size:13px;font-weight:400;line-height:24px;color:#09090980}.w-75{width:75%}.groups{display:flex;justify-content:space-between;margin-top:25px}.groups div{font-size:15px;font-weight:600;color:#2c2c2c99;padding:6px 30px;cursor:pointer}.selectedType{position:relative;text-align:center;background:var(--primary-bg-color);background-clip:text;box-shadow:0 0 4px #00000040;border-radius:10px}.selectedType:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.field-container{background:var(--grey-color);border-radius:13px;padding:10px}.drop-down-container{padding:10px;border-radius:8px;background:#fff;cursor:pointer}.drop-down-container select{width:90%;appearance:none;position:relative;outline:unset;border:unset;border-right:3px solid rgba(230,230,230,1);background:#fff;font-size:14px;padding:0 10px;border-radius:unset}.drop-down-container .down-arrow{width:10%;padding:0 6px}.input-label-1{font-size:16px;font-weight:600}.input-text{height:37px;width:100%;border:1px solid var(--grey-color);border-radius:5px;outline:none;font-size:14px;padding:10px 20px;font-weight:400;color:#090909e6}.mb-22{margin-bottom:22px}input[type=range]{-webkit-appearance:none;width:100%;height:8px;border-radius:20px;overflow:hidden;background:#fafafa}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:8px;width:10px;background:var(--primary-bg-color);box-shadow:-50rem 0 5rem 20rem #250d5e,-40rem 0 5rem 30rem #0bf,-30rem 0 2rem 25rem #250d5e,-25.5rem 0 0 25rem #0bf;border-radius:50%;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageEditorComponent, isStandalone: true, selector: "simpo-image-editor", ngImport: i0, template: "<section class=\"main-section\">\n <div class=\"header-section d-flex justify-content-between align-items-center\">\n <div class=\"head-text\">Image Settings</div>\n <mat-icon class=\"d-flex align-items-center justify-content-center f-18 cp\"\n (click)=\"dialogRef.close()\">close</mat-icon>\n </div>\n <div>\n <!-- <p class=\"heading mb-0\">Image</p> -->\n <div class=\"upload-image cp\" *ngIf=\"!imageData.url && !iconData.url\" (click)=\"updateImage()\">\n <img loading=\"lazy\"\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/547500c1744698830343upload-one%20%281%29.png\"\n alt=\"\">\n <p class=\"upload-text mb-0\">Upload a file</p>\n <p class=\"upload-text mb-0\">or select an existing one</p>\n <span class=\"upload-text\">up to 32MB</span>\n </div>\n <div class=\"sec d-flex align-items-center\" *ngIf=\"imageData.url || iconData.url\">\n <ng-container *ngIf=\"!imgLoader\">\n <img [src]=\"imageData.url || iconData.url\" [alt]=\"imageData.altText ?? ''\">\n <div class=\"repalce-image cursor-pointer\" (click)=\"updateImage()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" width=\"24\"\n height=\"24\" class=\"icon w-4 h-4\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\n d=\"m4 16 4.58579-4.5858c.78104-.781 2.04741-.781 2.82841 0L16 16m-2-2 1.5858-1.5858c.781-.781 2.0474-.781 2.8284 0L20 14m-6-6h.01M6 20h12c1.1046 0 2-.8954 2-2V6c0-1.10457-.8954-2-2-2H6c-1.10457 0-2 .89543-2 2v12c0 1.1046.89543 2 2 2Z\">\n </path>\n </svg>\n </div>\n\n <div class=\"delete-image cursor-pointer \" (click)=\"deleteImage()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"#ffffff\" viewBox=\"0 0 24 24\" width=\"24\"\n height=\"24\" class=\"icon h-4 w-4\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\n d=\"m19 7-.8673 12.1425C18.0579 20.1891 17.187 21 16.1378 21H7.86224c-1.04928 0-1.92016-.8109-1.99492-1.8575L5 7m5 4v6m4-6v6m1-10V4c0-.55228-.4477-1-1-1h-4c-.55228 0-1 .44772-1 1v3M4 7h16\">\n </path>\n </svg>\n </div>\n </ng-container>\n <ng-container *ngIf=\"imgLoader\">\n <div class=\"upload_spinner d-flex w-100 h-100 justify-content-center align-items-center\">\n <mat-spinner></mat-spinner>\n </div>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"!data.showIcon\">\n <div class=\"w-100 p-0-10 mb-22\" *ngIf=\"imageData.hasOwnProperty('altText')\">\n <p class=\"heading mb-2\">Alt text</p>\n <input type=\"text\" placeholder=\"Enter alt text\" class=\"input-field w-100\" [(ngModel)]=\"imageData.altText\">\n <div class=\"sub-text\">When the image fails to load, this text will be displayed.</div>\n </div>\n\n <div class=\"image mb-22\" *ngIf=\"imageData.hasOwnProperty('position')\">\n <p class=\"heading mb-1\">Image Position</p>\n <div class=\"horizontal-action\">\n <label>Horizontal</label>\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.x\"\n (input)=\"horizontalPosition()\" class=\"w-75\">\n </div>\n </div>\n <div class=\"horizontal-action\" style=\"margin-top: 5px;\">\n <label>Vertical</label>\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.y\"\n (input)=\"horizontalPosition()\" class=\"w-75\">\n </div>\n </div>\n </div>\n <div class=\"groups cp px-3\">\n <div *ngFor=\"let type of linkType\" [ngClass]=\"{'selectedType' : type.type === selectedType}\"\n (click)=\"changeType(type.type)\">{{type.type}}</div>\n </div>\n <div class=\"field-container mt-3 mx-3\">\n <div *ngIf=\"link.linkType === RedirectionLink.Page\">\n <label class=\"input-label-1 mt-3 mb-2\">Select Page</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"link.pageId\" (change)=\"onPageChange($event)\">\n <option value=\"\" selected>Select from your existing pages</option>\n <option *ngFor=\"let page of templatePage\" [value]=\"page.id\" style=\"padding: 10px;\">\n {{page.pageName}}</option>\n </select>\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\n </div>\n </div>\n <ng-container *ngIf=\"pageName == 'Product List'\">\n <label class=\"input-label-1 mt-3 mb-2\">Select Collection</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"collectionPath\" (ngModelChange)=\"addCollectionToPath()\">\n <option value=\"\" selected>Select from your existing pages</option>\n <option *ngFor=\"let coll of collectionList\" style=\"padding: 10px;\" [value]=\"coll.collectionName\">\n {{coll?.collectionName}}</option>\n </select>\n </div>\n <label class=\"input-label-1 mt-3 mb-2\">Select Category</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"categoryPath\" (ngModelChange)=\"addCategoryToPath()\">\n <option value=\"\" selected>Select from your existing pages</option>\n <option *ngFor=\"let coll of categoryList\" style=\"padding: 10px;\" [value]=\"coll.categoryName\">\n {{coll?.categoryName}}</option>\n </select>\n </div>\n </ng-container>\n <!-- <div class=\"sub-text\">Select from your existing pages</div> -->\n </div>\n <div *ngIf=\"link.linkType === RedirectionLink.section\">\n <label class=\"mt-3 mb-2 input-label-1\">Section</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"link.pageId\">\n <option value=\"\" selected>Select the Section</option>\n <option *ngFor=\"let section of templatePage[0]?.components\" [value]=\"section.id\">{{section.sectionName}}\n </option>\n </select>\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\n </div>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-between mt-10\">\n <label class=\"input-label-2\">Open in a new browser tab</label>\n <div class=\"form-check form-switch ml-auto\">\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"link.newTab\"\n role=\"switch\">\n </div>\n </div>\n\n <div\n *ngIf=\"link.linkType === RedirectionLink.External || link.linkType === RedirectionLink.Email || link.linkType === RedirectionLink.Phone\">\n <label class=\"mt-3 mb-2 input-label-1\">Select type</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"link.linkType\">\n <option value=\"\" selected>Select the Type</option>\n <option *ngFor=\"let type of externalLinkType\" [value]=\"type.type\">{{type.type}}</option>\n </select>\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\n </div>\n </div>\n <label class=\"input-label mb-2\">{{link.linkType === RedirectionLink.External ? 'Website' : link.linkType ===\n RedirectionLink.Email ? 'Email Address' : 'Phone Number'}}</label>\n <input type=\"text\" class=\"input-text\" [(ngModel)]=\"link.redirectionUrl\"\n [placeholder]=\"link.linkType === RedirectionLink.External ? 'example : https://facebook.com': ''\">\n </div>\n\n\n </div>\n </ng-container>\n\n\n <ng-container *ngIf=\"data.showIcon\">\n <div class=\"icon-color px-3 mb-3 d-flex flex-column justify-content-center align-items-center\">\n <label class=\"input-label-1 mb-4 w-100\">Icon Color</label>\n <div [style.backgroundColor]=\"iconData.color\" class=\"custom-input\" (click)=\"colorInput.click()\"></div>\n <input type=\"color\" [(ngModel)]=\"iconData.color\" (ngModelChange)=\"changeIconColor()\" class=\"input-text d-none\"\n #colorInput />\n </div>\n\n <div class=\"background-on d-flex justify-content-between px-3 mb-2\">\n <label class=\"input-label-1\">Show Background</label>\n <div class=\"form-check form-switch ml-auto\">\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"iconData.showBackground\"\n role=\"switch\">\n </div>\n </div>\n\n <div class=\"icon-background px-3 d-flex flex-column justify-content-center align-items-center\"\n *ngIf=\"iconData.showBackground\">\n <label class=\"input-label-1 mb-3 w-100\">Icon Background</label>\n <div [style.backgroundColor]=\"iconData.backgroundColor\" class=\"custom-input\" (click)=\"colorInput1.click()\"></div>\n <input type=\"color\" [(ngModel)]=\"iconData.backgroundColor\" class=\"input-text d-none\" #colorInput1 />\n </div>\n </ng-container>\n\n\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}:host{--grey-color: rgba(250, 250, 250, 1)}.custom-input{height:35px;width:100%;border-radius:2rem;box-shadow:0 1px 3px #3c404326,0 1px 2px #3c404326}.heading{color:#000;font-size:17px;font-weight:600}.upload-text{background:var(--primary-bg-color);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:500}.upload-image{border:3px dashed rgba(44,44,44,.6);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;margin:10px 10px 22px;border-radius:20px;box-shadow:#0000000d 0 1px 2px}.upload-image img{margin-bottom:8px;height:40px}.mb-0{margin-bottom:0!important}.desc{color:#fafafa;font-size:15px}.input-field{font-size:14px;outline:none;border:unset;border-radius:5px;padding:10px;color:#090909e6;background:#fafafa}.horizontal-action{display:flex;justify-content:space-between;align-items:center}.horizontal-action label{width:25%;font-size:14px;font-weight:400!important}.main-section{display:flex;flex-direction:column}.image{display:flex;flex-direction:column;gap:5px;padding:0 10px}.slider{width:70%}.cp{cursor:pointer}.sec{padding:10px 10px 22px;position:relative}.sec img{width:100%;height:200px;border-radius:20px}.delete-image{background-color:#d92d20;width:30px;height:30px;border-radius:6px;display:flex;justify-content:center;align-items:center;position:absolute;top:20px;right:20px}.repalce-image{display:flex;align-items:center;background:#fff;padding:2px;border-radius:6px;position:absolute;bottom:30px;left:20px}.f-18{font-size:18px}.header-section{padding:10px;box-shadow:0 0 4px #00000040}.header-section .head-text{font-weight:600;font-size:15px;color:#000}.header-section mat-icon{color:#2d264b}.p-0-10{padding:0 10px}.sub-text{font-size:13px;font-weight:400;line-height:24px;color:#09090980}.w-75{width:75%}.groups{display:flex;justify-content:space-between;margin-top:25px}.groups div{font-size:15px;font-weight:600;color:#2c2c2c99;padding:6px 30px;cursor:pointer}.selectedType{position:relative;text-align:center;background:var(--primary-bg-color);background-clip:text;box-shadow:0 0 4px #00000040;border-radius:10px}.selectedType:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.field-container{background:var(--grey-color);border-radius:13px;padding:10px}.drop-down-container{padding:10px;border-radius:8px;background:#fff;cursor:pointer}.drop-down-container select{width:90%;appearance:none;position:relative;outline:unset;border:unset;border-right:3px solid rgba(230,230,230,1);background:#fff;font-size:14px;padding:0 10px;border-radius:unset}.drop-down-container .down-arrow{width:10%;padding:0 6px}.input-label-1{font-size:16px;font-weight:600}.input-text{height:37px;width:100%;border:1px solid var(--grey-color);border-radius:5px;outline:none;font-size:14px;padding:10px 20px;font-weight:400;color:#090909e6}.mb-22{margin-bottom:22px}input[type=range]{-webkit-appearance:none;width:100%;height:8px;border-radius:20px;overflow:hidden;background:#fafafa}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:8px;width:10px;background:var(--primary-bg-color);box-shadow:-50rem 0 5rem 20rem #250d5e,-40rem 0 5rem 30rem #0bf,-30rem 0 2rem 25rem #250d5e,-25.5rem 0 0 25rem #0bf;border-radius:50%;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
225
226
  }
226
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageEditorComponent, decorators: [{
227
228
  type: Component,
228
- args: [{ selector: 'simpo-image-editor', standalone: true, imports: [CommonModule, FormsModule, MatIconModule, MatSliderModule, MatProgressSpinner], template: "<section class=\"main-section\">\r\n <div class=\"header-section d-flex justify-content-between align-items-center\">\r\n <div class=\"head-text\">Image Settings</div>\r\n <mat-icon class=\"d-flex align-items-center justify-content-center f-18 cp\"\r\n (click)=\"dialogRef.close()\">close</mat-icon>\r\n </div>\r\n <div>\r\n <!-- <p class=\"heading mb-0\">Image</p> -->\r\n <div class=\"upload-image cp\" *ngIf=\"!imageData.url && !iconData.url\" (click)=\"updateImage()\">\r\n <img loading=\"lazy\"\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/547500c1744698830343upload-one%20%281%29.png\"\r\n alt=\"\">\r\n <p class=\"upload-text mb-0\">Upload a file</p>\r\n <p class=\"upload-text mb-0\">or select an existing one</p>\r\n <span class=\"upload-text\">up to 32MB</span>\r\n </div>\r\n <div class=\"sec d-flex align-items-center\" *ngIf=\"imageData.url || iconData.url\">\r\n <ng-container *ngIf=\"!imgLoader\">\r\n <img [src]=\"imageData.url || iconData.url\" [alt]=\"imageData.altText ?? ''\">\r\n <div class=\"repalce-image cursor-pointer\" (click)=\"updateImage()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" width=\"24\"\r\n height=\"24\" class=\"icon w-4 h-4\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\r\n d=\"m4 16 4.58579-4.5858c.78104-.781 2.04741-.781 2.82841 0L16 16m-2-2 1.5858-1.5858c.781-.781 2.0474-.781 2.8284 0L20 14m-6-6h.01M6 20h12c1.1046 0 2-.8954 2-2V6c0-1.10457-.8954-2-2-2H6c-1.10457 0-2 .89543-2 2v12c0 1.1046.89543 2 2 2Z\">\r\n </path>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"delete-image cursor-pointer \" (click)=\"deleteImage()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"#ffffff\" viewBox=\"0 0 24 24\" width=\"24\"\r\n height=\"24\" class=\"icon h-4 w-4\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\r\n d=\"m19 7-.8673 12.1425C18.0579 20.1891 17.187 21 16.1378 21H7.86224c-1.04928 0-1.92016-.8109-1.99492-1.8575L5 7m5 4v6m4-6v6m1-10V4c0-.55228-.4477-1-1-1h-4c-.55228 0-1 .44772-1 1v3M4 7h16\">\r\n </path>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"imgLoader\">\r\n <div class=\"upload_spinner d-flex w-100 h-100 justify-content-center align-items-center\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!data.showIcon\">\r\n <div class=\"w-100 p-0-10 mb-22\" *ngIf=\"imageData.hasOwnProperty('altText')\">\r\n <p class=\"heading mb-2\">Alt text</p>\r\n <input type=\"text\" placeholder=\"Enter alt text\" class=\"input-field w-100\" [(ngModel)]=\"imageData.altText\">\r\n <div class=\"sub-text\">When the image fails to load, this text will be displayed.</div>\r\n </div>\r\n\r\n <div class=\"image mb-22\" *ngIf=\"imageData.hasOwnProperty('position')\">\r\n <p class=\"heading mb-1\">Image Position</p>\r\n <div class=\"horizontal-action\">\r\n <label>Horizontal</label>\r\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\r\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.x\"\r\n (input)=\"horizontalPosition()\" class=\"w-75\">\r\n </div>\r\n </div>\r\n <div class=\"horizontal-action\" style=\"margin-top: 5px;\">\r\n <label>Vertical</label>\r\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\r\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.y\"\r\n (input)=\"horizontalPosition()\" class=\"w-75\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"groups cp px-3\">\r\n <div *ngFor=\"let type of linkType\" [ngClass]=\"{'selectedType' : type.type === selectedType}\"\r\n (click)=\"changeType(type.type)\">{{type.type}}</div>\r\n </div>\r\n <div class=\"field-container mt-3 mx-3\">\r\n <div *ngIf=\"link.linkType === RedirectionLink.Page\">\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Page</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\" (change)=\"onPageChange($event)\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let page of templatePage\" [value]=\"page.id\" style=\"padding: 10px;\">\r\n {{page.pageName}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"pageName == 'Product List'\">\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Collection</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"collectionPath\" (ngModelChange)=\"addCollectionToPath()\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let coll of collectionList\" style=\"padding: 10px;\" [value]=\"coll.collectionName\">\r\n {{coll?.collectionName}}</option>\r\n </select>\r\n </div>\r\n <label class=\"input-label-1 mt-3 mb-2\">Select Category</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"categoryPath\" (ngModelChange)=\"addCategoryToPath()\">\r\n <option value=\"\" selected>Select from your existing pages</option>\r\n <option *ngFor=\"let coll of categoryList\" style=\"padding: 10px;\" [value]=\"coll.categoryName\">\r\n {{coll?.categoryName}}</option>\r\n </select>\r\n </div>\r\n </ng-container>\r\n <!-- <div class=\"sub-text\">Select from your existing pages</div> -->\r\n </div>\r\n <div *ngIf=\"link.linkType === RedirectionLink.section\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Section</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.pageId\">\r\n <option value=\"\" selected>Select the Section</option>\r\n <option *ngFor=\"let section of templatePage[0]?.components\" [value]=\"section.id\">{{section.sectionName}}\r\n </option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <label class=\"input-label-2\">Open in a new browser tab</label>\r\n <div class=\"form-check form-switch ml-auto\">\r\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"link.newTab\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"link.linkType === RedirectionLink.External || link.linkType === RedirectionLink.Email || link.linkType === RedirectionLink.Phone\">\r\n <label class=\"mt-3 mb-2 input-label-1\">Select type</label>\r\n <div class=\"drop-down-container w-100 d-flex mb-2\">\r\n <select [(ngModel)]=\"link.linkType\">\r\n <option value=\"\" selected>Select the Type</option>\r\n <option *ngFor=\"let type of externalLinkType\" [value]=\"type.type\">{{type.type}}</option>\r\n </select>\r\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\r\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <label class=\"input-label mb-2\">{{link.linkType === RedirectionLink.External ? 'Website' : link.linkType ===\r\n RedirectionLink.Email ? 'Email Address' : 'Phone Number'}}</label>\r\n <input type=\"text\" class=\"input-text\" [(ngModel)]=\"link.redirectionUrl\"\r\n [placeholder]=\"link.linkType === RedirectionLink.External ? 'example : https://facebook.com': ''\">\r\n </div>\r\n\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngIf=\"data.showIcon\">\r\n <div class=\"icon-color px-3 mb-3 d-flex flex-column justify-content-center align-items-center\">\r\n <label class=\"input-label-1 mb-4 w-100\">Icon Color</label>\r\n <div [style.backgroundColor]=\"iconData.color\" class=\"custom-input\" (click)=\"colorInput.click()\"></div>\r\n <input type=\"color\" [(ngModel)]=\"iconData.color\" (ngModelChange)=\"changeIconColor()\" class=\"input-text d-none\"\r\n #colorInput />\r\n </div>\r\n\r\n <div class=\"background-on d-flex justify-content-between px-3 mb-2\">\r\n <label class=\"input-label-1\">Show Background</label>\r\n <div class=\"form-check form-switch ml-auto\">\r\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"iconData.showBackground\"\r\n role=\"switch\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"icon-background px-3 d-flex flex-column justify-content-center align-items-center\"\r\n *ngIf=\"iconData.showBackground\">\r\n <label class=\"input-label-1 mb-3 w-100\">Icon Background</label>\r\n <div [style.backgroundColor]=\"iconData.backgroundColor\" class=\"custom-input\" (click)=\"colorInput1.click()\"></div>\r\n <input type=\"color\" [(ngModel)]=\"iconData.backgroundColor\" class=\"input-text d-none\" #colorInput1 />\r\n </div>\r\n </ng-container>\r\n\r\n\r\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}:host{--grey-color: rgba(250, 250, 250, 1)}.custom-input{height:35px;width:100%;border-radius:2rem;box-shadow:0 1px 3px #3c404326,0 1px 2px #3c404326}.heading{color:#000;font-size:17px;font-weight:600}.upload-text{background:var(--primary-bg-color);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:500}.upload-image{border:3px dashed rgba(44,44,44,.6);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;margin:10px 10px 22px;border-radius:20px;box-shadow:#0000000d 0 1px 2px}.upload-image img{margin-bottom:8px;height:40px}.mb-0{margin-bottom:0!important}.desc{color:#fafafa;font-size:15px}.input-field{font-size:14px;outline:none;border:unset;border-radius:5px;padding:10px;color:#090909e6;background:#fafafa}.horizontal-action{display:flex;justify-content:space-between;align-items:center}.horizontal-action label{width:25%;font-size:14px;font-weight:400!important}.main-section{display:flex;flex-direction:column}.image{display:flex;flex-direction:column;gap:5px;padding:0 10px}.slider{width:70%}.cp{cursor:pointer}.sec{padding:10px 10px 22px;position:relative}.sec img{width:100%;height:200px;border-radius:20px}.delete-image{background-color:#d92d20;width:30px;height:30px;border-radius:6px;display:flex;justify-content:center;align-items:center;position:absolute;top:20px;right:20px}.repalce-image{display:flex;align-items:center;background:#fff;padding:2px;border-radius:6px;position:absolute;bottom:30px;left:20px}.f-18{font-size:18px}.header-section{padding:10px;box-shadow:0 0 4px #00000040}.header-section .head-text{font-weight:600;font-size:15px;color:#000}.header-section mat-icon{color:#2d264b}.p-0-10{padding:0 10px}.sub-text{font-size:13px;font-weight:400;line-height:24px;color:#09090980}.w-75{width:75%}.groups{display:flex;justify-content:space-between;margin-top:25px}.groups div{font-size:15px;font-weight:600;color:#2c2c2c99;padding:6px 30px;cursor:pointer}.selectedType{position:relative;text-align:center;background:var(--primary-bg-color);background-clip:text;box-shadow:0 0 4px #00000040;border-radius:10px}.selectedType:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.field-container{background:var(--grey-color);border-radius:13px;padding:10px}.drop-down-container{padding:10px;border-radius:8px;background:#fff;cursor:pointer}.drop-down-container select{width:90%;appearance:none;position:relative;outline:unset;border:unset;border-right:3px solid rgba(230,230,230,1);background:#fff;font-size:14px;padding:0 10px;border-radius:unset}.drop-down-container .down-arrow{width:10%;padding:0 6px}.input-label-1{font-size:16px;font-weight:600}.input-text{height:37px;width:100%;border:1px solid var(--grey-color);border-radius:5px;outline:none;font-size:14px;padding:10px 20px;font-weight:400;color:#090909e6}.mb-22{margin-bottom:22px}input[type=range]{-webkit-appearance:none;width:100%;height:8px;border-radius:20px;overflow:hidden;background:#fafafa}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:8px;width:10px;background:var(--primary-bg-color);box-shadow:-50rem 0 5rem 20rem #250d5e,-40rem 0 5rem 30rem #0bf,-30rem 0 2rem 25rem #250d5e,-25.5rem 0 0 25rem #0bf;border-radius:50%;cursor:pointer}\n"] }]
229
+ args: [{ selector: 'simpo-image-editor', standalone: true, imports: [CommonModule, FormsModule, MatIconModule, MatSliderModule, MatProgressSpinner], template: "<section class=\"main-section\">\n <div class=\"header-section d-flex justify-content-between align-items-center\">\n <div class=\"head-text\">Image Settings</div>\n <mat-icon class=\"d-flex align-items-center justify-content-center f-18 cp\"\n (click)=\"dialogRef.close()\">close</mat-icon>\n </div>\n <div>\n <!-- <p class=\"heading mb-0\">Image</p> -->\n <div class=\"upload-image cp\" *ngIf=\"!imageData.url && !iconData.url\" (click)=\"updateImage()\">\n <img loading=\"lazy\"\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/547500c1744698830343upload-one%20%281%29.png\"\n alt=\"\">\n <p class=\"upload-text mb-0\">Upload a file</p>\n <p class=\"upload-text mb-0\">or select an existing one</p>\n <span class=\"upload-text\">up to 32MB</span>\n </div>\n <div class=\"sec d-flex align-items-center\" *ngIf=\"imageData.url || iconData.url\">\n <ng-container *ngIf=\"!imgLoader\">\n <img [src]=\"imageData.url || iconData.url\" [alt]=\"imageData.altText ?? ''\">\n <div class=\"repalce-image cursor-pointer\" (click)=\"updateImage()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" width=\"24\"\n height=\"24\" class=\"icon w-4 h-4\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\n d=\"m4 16 4.58579-4.5858c.78104-.781 2.04741-.781 2.82841 0L16 16m-2-2 1.5858-1.5858c.781-.781 2.0474-.781 2.8284 0L20 14m-6-6h.01M6 20h12c1.1046 0 2-.8954 2-2V6c0-1.10457-.8954-2-2-2H6c-1.10457 0-2 .89543-2 2v12c0 1.1046.89543 2 2 2Z\">\n </path>\n </svg>\n </div>\n\n <div class=\"delete-image cursor-pointer \" (click)=\"deleteImage()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"#ffffff\" viewBox=\"0 0 24 24\" width=\"24\"\n height=\"24\" class=\"icon h-4 w-4\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"\n d=\"m19 7-.8673 12.1425C18.0579 20.1891 17.187 21 16.1378 21H7.86224c-1.04928 0-1.92016-.8109-1.99492-1.8575L5 7m5 4v6m4-6v6m1-10V4c0-.55228-.4477-1-1-1h-4c-.55228 0-1 .44772-1 1v3M4 7h16\">\n </path>\n </svg>\n </div>\n </ng-container>\n <ng-container *ngIf=\"imgLoader\">\n <div class=\"upload_spinner d-flex w-100 h-100 justify-content-center align-items-center\">\n <mat-spinner></mat-spinner>\n </div>\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"!data.showIcon\">\n <div class=\"w-100 p-0-10 mb-22\" *ngIf=\"imageData.hasOwnProperty('altText')\">\n <p class=\"heading mb-2\">Alt text</p>\n <input type=\"text\" placeholder=\"Enter alt text\" class=\"input-field w-100\" [(ngModel)]=\"imageData.altText\">\n <div class=\"sub-text\">When the image fails to load, this text will be displayed.</div>\n </div>\n\n <div class=\"image mb-22\" *ngIf=\"imageData.hasOwnProperty('position')\">\n <p class=\"heading mb-1\">Image Position</p>\n <div class=\"horizontal-action\">\n <label>Horizontal</label>\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.x\"\n (input)=\"horizontalPosition()\" class=\"w-75\">\n </div>\n </div>\n <div class=\"horizontal-action\" style=\"margin-top: 5px;\">\n <label>Vertical</label>\n <div class=\"slider d-flex align-items-center justify-content-start cp\">\n <input [min]=\"min\" [max]=\"max\" step=\"5\" type=\"range\" [(ngModel)]=\"imageData.position.y\"\n (input)=\"horizontalPosition()\" class=\"w-75\">\n </div>\n </div>\n </div>\n <div class=\"groups cp px-3\">\n <div *ngFor=\"let type of linkType\" [ngClass]=\"{'selectedType' : type.type === selectedType}\"\n (click)=\"changeType(type.type)\">{{type.type}}</div>\n </div>\n <div class=\"field-container mt-3 mx-3\">\n <div *ngIf=\"link.linkType === RedirectionLink.Page\">\n <label class=\"input-label-1 mt-3 mb-2\">Select Page</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"link.pageId\" (change)=\"onPageChange($event)\">\n <option value=\"\" selected>Select from your existing pages</option>\n <option *ngFor=\"let page of templatePage\" [value]=\"page.id\" style=\"padding: 10px;\">\n {{page.pageName}}</option>\n </select>\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\n </div>\n </div>\n <ng-container *ngIf=\"pageName == 'Product List'\">\n <label class=\"input-label-1 mt-3 mb-2\">Select Collection</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"collectionPath\" (ngModelChange)=\"addCollectionToPath()\">\n <option value=\"\" selected>Select from your existing pages</option>\n <option *ngFor=\"let coll of collectionList\" style=\"padding: 10px;\" [value]=\"coll.collectionName\">\n {{coll?.collectionName}}</option>\n </select>\n </div>\n <label class=\"input-label-1 mt-3 mb-2\">Select Category</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"categoryPath\" (ngModelChange)=\"addCategoryToPath()\">\n <option value=\"\" selected>Select from your existing pages</option>\n <option *ngFor=\"let coll of categoryList\" style=\"padding: 10px;\" [value]=\"coll.categoryName\">\n {{coll?.categoryName}}</option>\n </select>\n </div>\n </ng-container>\n <!-- <div class=\"sub-text\">Select from your existing pages</div> -->\n </div>\n <div *ngIf=\"link.linkType === RedirectionLink.section\">\n <label class=\"mt-3 mb-2 input-label-1\">Section</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"link.pageId\">\n <option value=\"\" selected>Select the Section</option>\n <option *ngFor=\"let section of templatePage[0]?.components\" [value]=\"section.id\">{{section.sectionName}}\n </option>\n </select>\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\n </div>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-between mt-10\">\n <label class=\"input-label-2\">Open in a new browser tab</label>\n <div class=\"form-check form-switch ml-auto\">\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"link.newTab\"\n role=\"switch\">\n </div>\n </div>\n\n <div\n *ngIf=\"link.linkType === RedirectionLink.External || link.linkType === RedirectionLink.Email || link.linkType === RedirectionLink.Phone\">\n <label class=\"mt-3 mb-2 input-label-1\">Select type</label>\n <div class=\"drop-down-container w-100 d-flex mb-2\">\n <select [(ngModel)]=\"link.linkType\">\n <option value=\"\" selected>Select the Type</option>\n <option *ngFor=\"let type of externalLinkType\" [value]=\"type.type\">{{type.type}}</option>\n </select>\n <div class=\"down-arrow d-flex align-items-center justify-content-center\"><img\n src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/268410c1742286052940Down%202.png\" alt=\"\">\n </div>\n </div>\n <label class=\"input-label mb-2\">{{link.linkType === RedirectionLink.External ? 'Website' : link.linkType ===\n RedirectionLink.Email ? 'Email Address' : 'Phone Number'}}</label>\n <input type=\"text\" class=\"input-text\" [(ngModel)]=\"link.redirectionUrl\"\n [placeholder]=\"link.linkType === RedirectionLink.External ? 'example : https://facebook.com': ''\">\n </div>\n\n\n </div>\n </ng-container>\n\n\n <ng-container *ngIf=\"data.showIcon\">\n <div class=\"icon-color px-3 mb-3 d-flex flex-column justify-content-center align-items-center\">\n <label class=\"input-label-1 mb-4 w-100\">Icon Color</label>\n <div [style.backgroundColor]=\"iconData.color\" class=\"custom-input\" (click)=\"colorInput.click()\"></div>\n <input type=\"color\" [(ngModel)]=\"iconData.color\" (ngModelChange)=\"changeIconColor()\" class=\"input-text d-none\"\n #colorInput />\n </div>\n\n <div class=\"background-on d-flex justify-content-between px-3 mb-2\">\n <label class=\"input-label-1\">Show Background</label>\n <div class=\"form-check form-switch ml-auto\">\n <input class=\"form-check-input switch-btn cursor-pointer\" type=\"checkbox\" [(ngModel)]=\"iconData.showBackground\"\n role=\"switch\">\n </div>\n </div>\n\n <div class=\"icon-background px-3 d-flex flex-column justify-content-center align-items-center\"\n *ngIf=\"iconData.showBackground\">\n <label class=\"input-label-1 mb-3 w-100\">Icon Background</label>\n <div [style.backgroundColor]=\"iconData.backgroundColor\" class=\"custom-input\" (click)=\"colorInput1.click()\"></div>\n <input type=\"color\" [(ngModel)]=\"iconData.backgroundColor\" class=\"input-text d-none\" #colorInput1 />\n </div>\n </ng-container>\n\n\n</section>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}:host{--grey-color: rgba(250, 250, 250, 1)}.custom-input{height:35px;width:100%;border-radius:2rem;box-shadow:0 1px 3px #3c404326,0 1px 2px #3c404326}.heading{color:#000;font-size:17px;font-weight:600}.upload-text{background:var(--primary-bg-color);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:500}.upload-image{border:3px dashed rgba(44,44,44,.6);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;margin:10px 10px 22px;border-radius:20px;box-shadow:#0000000d 0 1px 2px}.upload-image img{margin-bottom:8px;height:40px}.mb-0{margin-bottom:0!important}.desc{color:#fafafa;font-size:15px}.input-field{font-size:14px;outline:none;border:unset;border-radius:5px;padding:10px;color:#090909e6;background:#fafafa}.horizontal-action{display:flex;justify-content:space-between;align-items:center}.horizontal-action label{width:25%;font-size:14px;font-weight:400!important}.main-section{display:flex;flex-direction:column}.image{display:flex;flex-direction:column;gap:5px;padding:0 10px}.slider{width:70%}.cp{cursor:pointer}.sec{padding:10px 10px 22px;position:relative}.sec img{width:100%;height:200px;border-radius:20px}.delete-image{background-color:#d92d20;width:30px;height:30px;border-radius:6px;display:flex;justify-content:center;align-items:center;position:absolute;top:20px;right:20px}.repalce-image{display:flex;align-items:center;background:#fff;padding:2px;border-radius:6px;position:absolute;bottom:30px;left:20px}.f-18{font-size:18px}.header-section{padding:10px;box-shadow:0 0 4px #00000040}.header-section .head-text{font-weight:600;font-size:15px;color:#000}.header-section mat-icon{color:#2d264b}.p-0-10{padding:0 10px}.sub-text{font-size:13px;font-weight:400;line-height:24px;color:#09090980}.w-75{width:75%}.groups{display:flex;justify-content:space-between;margin-top:25px}.groups div{font-size:15px;font-weight:600;color:#2c2c2c99;padding:6px 30px;cursor:pointer}.selectedType{position:relative;text-align:center;background:var(--primary-bg-color);background-clip:text;box-shadow:0 0 4px #00000040;border-radius:10px}.selectedType:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.field-container{background:var(--grey-color);border-radius:13px;padding:10px}.drop-down-container{padding:10px;border-radius:8px;background:#fff;cursor:pointer}.drop-down-container select{width:90%;appearance:none;position:relative;outline:unset;border:unset;border-right:3px solid rgba(230,230,230,1);background:#fff;font-size:14px;padding:0 10px;border-radius:unset}.drop-down-container .down-arrow{width:10%;padding:0 6px}.input-label-1{font-size:16px;font-weight:600}.input-text{height:37px;width:100%;border:1px solid var(--grey-color);border-radius:5px;outline:none;font-size:14px;padding:10px 20px;font-weight:400;color:#090909e6}.mb-22{margin-bottom:22px}input[type=range]{-webkit-appearance:none;width:100%;height:8px;border-radius:20px;overflow:hidden;background:#fafafa}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:8px;width:10px;background:var(--primary-bg-color);box-shadow:-50rem 0 5rem 20rem #250d5e,-40rem 0 5rem 30rem #0bf,-30rem 0 2rem 25rem #250d5e,-25.5rem 0 0 25rem #0bf;border-radius:50%;cursor:pointer}\n"] }]
229
230
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.ElementServiceService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
230
231
  type: Inject,
231
232
  args: [MAT_DIALOG_DATA]
232
233
  }] }, { type: i3.MatDialog }] });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWxlbWVudHMvaW1hZ2UtZWRpdG9yL2ltYWdlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2ltYWdlLWVkaXRvci9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBU3hFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxhQUE0QixFQUM1QixhQUFvQyxFQUNyQyxTQUE2QyxFQUNwQixJQUFTLEVBQ2pDLFNBQW9CO1FBSnBCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGNB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b24sIEljb24sIEltYWdlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgTWVkaWFTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL21lZGlhLXNlbGVjdG9yL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50U2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9lZGl0b3Itc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVkaXJlY3Rpb25MaW5rVHlwZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWltYWdlLWVkaXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0U2xpZGVyTW9kdWxlLCBNYXRQcm9ncmVzc1NwaW5uZXJdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRWRpdG9yQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGV2ZW50c1NlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVsZW1lbnRTZXJ2aWNlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxJbWFnZUVkaXRvckNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhOiBJbWFnZSA9IHtcclxuICAgIGlkOiAnJyxcclxuICAgIHVybDogJycsXHJcbiAgICBibHVyaGFzaDogJycsXHJcbiAgICBhbHRUZXh0OiAnJyxcclxuICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgIHg6IDAsXHJcbiAgICAgIHk6IDBcclxuICAgIH0sXHJcbiAgICBjb250ZW50OiB7XHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgbGlua1R5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZSxcclxuICAgICAgcmVkaXJlY3Rpb25Vcmw6ICcnLFxyXG4gICAgICBwYWdlSWQ6ICcnLFxyXG4gICAgICBuZXdUYWI6IGZhbHNlXHJcbiAgICB9XHJcbiAgfTtcclxuICBpY29uRGF0YTogSWNvbiA9IHtcclxuICAgIHVybDogJycsXHJcbiAgICBjb2xvcjogJycsXHJcbiAgICBzaG93QmFja2dyb3VuZDogZmFsc2UsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnXHJcbiAgfVxyXG4gIHNlY3Rpb25JZCE6IHN0cmluZztcclxuICBwcml2YXRlIGJhY2tEcm9wOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIGxpbms6IEJ1dHRvbiA9IHtcclxuICAgIGxpbmtUeXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2UsXHJcbiAgICBsYWJlbDogJycsXHJcbiAgICByZWRpcmVjdGlvblVybDogJycsXHJcbiAgICBwYWdlSWQ6ICcnLFxyXG4gICAgbmV3VGFiOiBmYWxzZVxyXG4gIH07XHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNlY3Rpb25JZCA9IHRoaXMuZGF0YS5zZWN0aW9uSWQ7XHJcbiAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xyXG4gICAgICB0aGlzLmljb25EYXRhID0gdGhpcy5kYXRhLmljb25EYXRhO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmljb25EYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VIZWxwZXJGdW5jdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBSZWRpcmVjdGlvbkxpbmsgPSBSZWRpcmVjdGlvbkxpbmtUeXBlXHJcbiAgYWRkTGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1heCA9IDEwMDtcclxuICBtaW4gPSAwO1xyXG5cclxuXHJcbiAgaW1nTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXN5bmMgdXBkYXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLmltZ0xvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBtZWRpYVNlbGVjdG9yRGlhbG9nID0gdGhpcy5tYXREaWFsb2cub3BlbihNZWRpYVNlbGVjdG9yQ29tcG9uZW50LCB7IGRhdGE6IHsgbXVsdGlwbGU6IGZhbHNlIH0sIHBhbmVsQ2xhc3M6IFwibWVkaWEtc2VsZWN0b3JcIiB9KVxyXG4gICAgbWVkaWFTZWxlY3RvckRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xyXG4gICAgICAgICAgICB0aGlzLmljb25EYXRhLnVybCA9IHJlc1swXS5hc3NldHNbMF0udXJsO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pY29uRGF0YS51cmwgJiYgKHRoaXMuaWNvbkRhdGEudXJsLmluY2x1ZGVzKCcucG5nJykgfHwgdGhpcy5pY29uRGF0YS51cmwuaW5jbHVkZXMoJy5zdmcnKSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50c1NlcnZpY2UuaWNvbkNoYW5nZWQuZW1pdCh7IGlkOiB0aGlzLnNlY3Rpb25JZCArIHRoaXMuaWNvbkRhdGEuaWQsIGljb246IHRoaXMuaWNvbkRhdGEgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlRGF0YS51cmwgPSByZXNbMF0uYXNzZXRzWzBdLnVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbWdMb2FkZXIgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlSWNvbkNvbG9yKCkge1xyXG4gICAgdGhpcy5ldmVudHNTZXJ2aWNlLmljb25DaGFuZ2VkLmVtaXQoeyBpZDogdGhpcy5zZWN0aW9uSWQgKyB0aGlzLmljb25EYXRhLmlkLCBpY29uOiB0aGlzLmljb25EYXRhIH0pO1xyXG4gIH1cclxuXHJcbiAgaG9yaXpvbnRhbFBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5ldmVudHNTZXJ2aWNlLm9iamVjdFBvc2l0aW9uQ2hhbmdlQ2hlY2suZW1pdCh7IGlkOiB0aGlzLnNlY3Rpb25JZCArIHRoaXMuaW1hZ2VEYXRhLmlkLCBwb3NpdGlvbjogdGhpcy5pbWFnZURhdGEucG9zaXRpb24gfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZUltYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YT8uc2hvd0ljb24pIHtcclxuICAgICAgdGhpcy5pY29uRGF0YS51cmwgPSAnJztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmltYWdlRGF0YS51cmwgPSAnJztcclxuICAgIH1cclxuICB9XHJcbiAgbGlua1R5cGU6IGFueVtdID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuc2VjdGlvblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbFxyXG4gICAgfVxyXG4gIF1cclxuICBzZWxlY3RlZFR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUgPSBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2U7XHJcbiAgY2hhbmdlVHlwZSh0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmxpbmsubGlua1R5cGUgPSB0aGlzLnNlbGVjdGVkVHlwZTtcclxuICB9XHJcbiAgdGVtcGxhdGVQYWdlOiBhbnlbXSA9IFtdO1xyXG4gIGdldFRlbXBsYXRlUGFnZSgpIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRUZW1wbGF0ZSgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZVBhZ2UgPSByZXMuZGF0YTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIGV4dGVybmFsTGlua1R5cGU6IEFycmF5PHR5cGU+ID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkVtYWlsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBob25lXHJcbiAgICB9XHJcbiAgXVxyXG4gIGNvbGxlY3Rpb25MaXN0OiBhbnkgPSBbXTtcclxuICBjYXRlZ29yeUxpc3Q6IGFueSA9IFtdO1xyXG4gIGNvbGxlY3Rpb25QYXRoOiBhbnkgPSBcIlwiXHJcbiAgZ2V0Q29sbGVjdGlvbkxpc3QoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0QWxsQ29sbGVjdGlvbnMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25MaXN0ID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0QWxsQ2F0ZWdvcmllcygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHBhZ2VOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGFkZENvbGxlY3Rpb25Ub1BhdGgoKSB7XHJcbiAgICBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiP2NvbGxlY3Rpb25zPVwiKSkge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25Vcmwuc3BsaXQoXCI/Y29sbGVjdGlvbnM9XCIpWzBdO1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIj9jb2xsZWN0aW9ucz1cIiArIHRoaXMuY29sbGVjdGlvblBhdGg7XHJcbiAgICAgIGlmICh0aGlzLmNhdGVnb3J5UGF0aC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCImY2F0ZWdvcnk9XCIgKyB0aGlzLmNhdGVnb3J5UGF0aDtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY2F0ZWdvcnk9XCIpKSB7XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiJmNvbGxlY3Rpb25zPVwiICsgdGhpcy5jb2xsZWN0aW9uUGF0aDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIj9jb2xsZWN0aW9ucz1cIiArIHRoaXMuY29sbGVjdGlvblBhdGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNhdGVnb3J5UGF0aDogYW55ID0gXCJcIjtcclxuICBhZGRDYXRlZ29yeVRvUGF0aCgpIHtcclxuICAgIGlmICh0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwuaW5jbHVkZXMoXCI/Y2F0ZWdvcnk9XCIpKSB7XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybC5zcGxpdChcIj9jYXRlZ29yeT1cIilbMF07XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiP2NhdGVnb3J5PVwiICsgdGhpcy5jYXRlZ29yeVBhdGg7XHJcbiAgICAgIGlmICh0aGlzLmNvbGxlY3Rpb25QYXRoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIiZjb2xsZWN0aW9ucz1cIiArIHRoaXMuY29sbGVjdGlvblBhdGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMubGluay5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcImNvbGxlY3Rpb25zPVwiKSkge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIiZjYXRlZ29yeT1cIiArIHRoaXMuY2F0ZWdvcnlQYXRoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCI/Y2F0ZWdvcnk9XCIgKyB0aGlzLmNhdGVnb3J5UGF0aDtcclxuICAgIH1cclxuICB9XHJcbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUGFnZUlkID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRQYWdlID0gdGhpcy50ZW1wbGF0ZVBhZ2UuZmluZChwYWdlID0+IHBhZ2UuaWQgPT09IHNlbGVjdGVkUGFnZUlkKTtcclxuICAgIGlmIChzZWxlY3RlZFBhZ2UpIHtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gc2VsZWN0ZWRQYWdlLnBhdGg7XHJcbiAgICAgIHRoaXMucGFnZU5hbWUgPSBzZWxlY3RlZFBhZ2UucGFnZU5hbWU7XHJcbiAgICAgIGlmICh0aGlzLnBhZ2VOYW1lID09ICdQcm9kdWN0IExpc3QnKSB7XHJcbiAgICAgICAgdGhpcy5nZXRDb2xsZWN0aW9uTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGltYWdlSGVscGVyRnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLmltYWdlRGF0YSA9IHRoaXMuZGF0YS5pbWFnZURhdGE7XHJcbiAgICB0aGlzLmFkZExpbmsgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZGF0YT8uaW1hZ2VEYXRhPy5jb250ZW50KSB7XHJcbiAgICAgIHRoaXMubGluayA9IHRoaXMuZGF0YS5pbWFnZURhdGE/LmNvbnRlbnQ7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdGhpcy5saW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmtUeXBlLkVtYWlsIHx8IHRoaXMubGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rVHlwZS5QaG9uZSA/IFJlZGlyZWN0aW9uTGlua1R5cGUuRXh0ZXJuYWwgOiB0aGlzLmxpbmsubGlua1R5cGU7XHJcbiAgICAgIHRoaXMuYWRkTGluayA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRUZW1wbGF0ZVBhZ2UoKTtcclxuICAgIGlmICh0aGlzLmxpbms/LnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY29sbGVjdGlvbnM9XCIpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0Q29sbGVjdGlvbkxpc3QoKTtcclxuICAgICAgdGhpcy5wYWdlTmFtZSA9IFwiUHJvZHVjdCBMaXN0XCI7XHJcbiAgICAgIGxldCBxdWVyeSA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybC5zcGxpdChcIj9cIilbMV07XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnkpO1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb25QYXRoID0gcGFyYW1zLmdldCgnY29sbGVjdGlvbnMnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxpbms/LnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY2F0ZWdvcnk9XCIpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICAgIHRoaXMucGFnZU5hbWUgPSBcIlByb2R1Y3QgTGlzdFwiO1xyXG4gICAgICBsZXQgcXVlcnkgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25Vcmwuc3BsaXQoXCI/XCIpWzFdO1xyXG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5KTtcclxuICAgICAgdGhpcy5jYXRlZ29yeVBhdGggPSBwYXJhbXMuZ2V0KCdjYXRlZ29yeScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuaW50ZXJmYWNlIHR5cGUge1xyXG4gIHR5cGU6IHN0cmluZztcclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW4tc2VjdGlvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItc2VjdGlvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZC10ZXh0XCI+SW1hZ2UgU2V0dGluZ3M8L2Rpdj5cclxuICAgIDxtYXQtaWNvbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmLTE4IGNwXCJcclxuICAgICAgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIDxwIGNsYXNzPVwiaGVhZGluZyBtYi0wXCI+SW1hZ2U8L3A+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbWFnZSBjcFwiICpuZ0lmPVwiIWltYWdlRGF0YS51cmwgJiYgIWljb25EYXRhLnVybFwiIChjbGljayk9XCJ1cGRhdGVJbWFnZSgpXCI+XHJcbiAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvNTQ3NTAwYzE3NDQ2OTg4MzAzNDN1cGxvYWQtb25lJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICA8cCBjbGFzcz1cInVwbG9hZC10ZXh0IG1iLTBcIj5VcGxvYWQgYSBmaWxlPC9wPlxyXG4gICAgICA8cCBjbGFzcz1cInVwbG9hZC10ZXh0IG1iLTBcIj5vciBzZWxlY3QgYW4gZXhpc3Rpbmcgb25lPC9wPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC10ZXh0XCI+dXAgdG8gMzJNQjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNlYyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJpbWFnZURhdGEudXJsIHx8IGljb25EYXRhLnVybFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWltZ0xvYWRlclwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJpbWFnZURhdGEudXJsIHx8IGljb25EYXRhLnVybFwiIFthbHRdPVwiaW1hZ2VEYXRhLmFsdFRleHQgPz8gJydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVwYWxjZS1pbWFnZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJ1cGRhdGVJbWFnZSgpXCI+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiBjbGFzcz1cImljb24gdy00IGgtNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgIGQ9XCJtNCAxNiA0LjU4NTc5LTQuNTg1OGMuNzgxMDQtLjc4MSAyLjA0NzQxLS43ODEgMi44Mjg0MSAwTDE2IDE2bS0yLTIgMS41ODU4LTEuNTg1OGMuNzgxLS43ODEgMi4wNDc0LS43ODEgMi44Mjg0IDBMMjAgMTRtLTYtNmguMDFNNiAyMGgxMmMxLjEwNDYgMCAyLS44OTU0IDItMlY2YzAtMS4xMDQ1Ny0uODk1NC0yLTItMkg2Yy0xLjEwNDU3IDAtMiAuODk1NDMtMiAydjEyYzAgMS4xMDQ2Ljg5NTQzIDIgMiAyWlwiPlxyXG4gICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1pbWFnZSBjdXJzb3ItcG9pbnRlciBcIiAoY2xpY2spPVwiZGVsZXRlSW1hZ2UoKVwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjZmZmZmZmXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIlxyXG4gICAgICAgICAgICBoZWlnaHQ9XCIyNFwiIGNsYXNzPVwiaWNvbiBoLTQgdy00XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgZD1cIm0xOSA3LS44NjczIDEyLjE0MjVDMTguMDU3OSAyMC4xODkxIDE3LjE4NyAyMSAxNi4xMzc4IDIxSDcuODYyMjRjLTEuMDQ5MjggMC0xLjkyMDE2LS44MTA5LTEuOTk0OTItMS44NTc1TDUgN201IDR2Nm00LTZ2Nm0xLTEwVjRjMC0uNTUyMjgtLjQ0NzctMS0xLTFoLTRjLS41NTIyOCAwLTEgLjQ0NzcyLTEgMXYzTTQgN2gxNlwiPlxyXG4gICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWdMb2FkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkX3NwaW5uZXIgZC1mbGV4IHctMTAwIGgtMTAwIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLnNob3dJY29uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy0xMDAgcC0wLTEwIG1iLTIyXCIgKm5nSWY9XCJpbWFnZURhdGEuaGFzT3duUHJvcGVydHkoJ2FsdFRleHQnKVwiPlxyXG4gICAgICA8cCBjbGFzcz1cImhlYWRpbmcgbWItMlwiPkFsdCB0ZXh0PC9wPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGFsdCB0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZCB3LTEwMFwiIFsobmdNb2RlbCldPVwiaW1hZ2VEYXRhLmFsdFRleHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+V2hlbiB0aGUgaW1hZ2UgZmFpbHMgdG8gbG9hZCwgdGhpcyB0ZXh0IHdpbGwgYmUgZGlzcGxheWVkLjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImltYWdlIG1iLTIyXCIgKm5nSWY9XCJpbWFnZURhdGEuaGFzT3duUHJvcGVydHkoJ3Bvc2l0aW9uJylcIj5cclxuICAgICAgPHAgY2xhc3M9XCJoZWFkaW5nIG1iLTFcIj5JbWFnZSBQb3NpdGlvbjwvcD5cclxuICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtYWN0aW9uXCI+XHJcbiAgICAgICAgPGxhYmVsPkhvcml6b250YWw8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgY3BcIj5cclxuICAgICAgICAgIDxpbnB1dCBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCIgc3RlcD1cIjVcIiB0eXBlPVwicmFuZ2VcIiBbKG5nTW9kZWwpXT1cImltYWdlRGF0YS5wb3NpdGlvbi54XCJcclxuICAgICAgICAgICAgKGlucHV0KT1cImhvcml6b250YWxQb3NpdGlvbigpXCIgY2xhc3M9XCJ3LTc1XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1hY3Rpb25cIiBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDtcIj5cclxuICAgICAgICA8bGFiZWw+VmVydGljYWw8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgY3BcIj5cclxuICAgICAgICAgIDxpbnB1dCBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCIgc3RlcD1cIjVcIiB0eXBlPVwicmFuZ2VcIiBbKG5nTW9kZWwpXT1cImltYWdlRGF0YS5wb3NpdGlvbi55XCJcclxuICAgICAgICAgICAgKGlucHV0KT1cImhvcml6b250YWxQb3NpdGlvbigpXCIgY2xhc3M9XCJ3LTc1XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzIGNwIHB4LTNcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBsaW5rVHlwZVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUeXBlJyA6IHR5cGUudHlwZSA9PT0gc2VsZWN0ZWRUeXBlfVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVR5cGUodHlwZS50eXBlKVwiPnt7dHlwZS50eXBlfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbnRhaW5lciBtdC0zIG14LTNcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5QYWdlXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgUGFnZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLnBhZ2VJZFwiIChjaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiB0ZW1wbGF0ZVBhZ2VcIiBbdmFsdWVdPVwicGFnZS5pZFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICAgICAgICB7e3BhZ2UucGFnZU5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8yNjg0MTBjMTc0MjI4NjA1Mjk0MERvd24lMjAyLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VOYW1lID09ICdQcm9kdWN0IExpc3QnXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG10LTMgbWItMlwiPlNlbGVjdCBDb2xsZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJjb2xsZWN0aW9uUGF0aFwiIChuZ01vZGVsQ2hhbmdlKT1cImFkZENvbGxlY3Rpb25Ub1BhdGgoKVwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgZnJvbSB5b3VyIGV4aXN0aW5nIHBhZ2VzPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29sbCBvZiBjb2xsZWN0aW9uTGlzdFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIiBbdmFsdWVdPVwiY29sbC5jb2xsZWN0aW9uTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAge3tjb2xsPy5jb2xsZWN0aW9uTmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG10LTMgbWItMlwiPlNlbGVjdCBDYXRlZ29yeTwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwiY2F0ZWdvcnlQYXRoXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYWRkQ2F0ZWdvcnlUb1BhdGgoKVwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgZnJvbSB5b3VyIGV4aXN0aW5nIHBhZ2VzPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29sbCBvZiBjYXRlZ29yeUxpc3RcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCIgW3ZhbHVlXT1cImNvbGwuY2F0ZWdvcnlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7e2NvbGw/LmNhdGVnb3J5TmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5TZWxlY3QgZnJvbSB5b3VyIGV4aXN0aW5nIHBhZ2VzPC9kaXY+IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5zZWN0aW9uXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsucGFnZUlkXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgdGhlIFNlY3Rpb248L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiB0ZW1wbGF0ZVBhZ2VbMF0/LmNvbXBvbmVudHNcIiBbdmFsdWVdPVwic2VjdGlvbi5pZFwiPnt7c2VjdGlvbi5zZWN0aW9uTmFtZX19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8yNjg0MTBjMTc0MjI4NjA1Mjk0MERvd24lMjAyLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTJcIj5PcGVuIGluIGEgbmV3IGJyb3dzZXIgdGFiPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtbC1hdXRvXCI+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHN3aXRjaC1idG4gY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImxpbmsubmV3VGFiXCJcclxuICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCB8fCBsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRW1haWwgfHwgbGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLlBob25lXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWxlY3QgdHlwZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLmxpbmtUeXBlXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgdGhlIFR5cGU8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBleHRlcm5hbExpbmtUeXBlXCIgW3ZhbHVlXT1cInR5cGUudHlwZVwiPnt7dHlwZS50eXBlfX08L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvd24tYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PGltZ1xyXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsIG1iLTJcIj57e2xpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCA/ICdXZWJzaXRlJyA6IGxpbmsubGlua1R5cGUgPT09XHJcbiAgICAgICAgICBSZWRpcmVjdGlvbkxpbmsuRW1haWwgPyAnRW1haWwgQWRkcmVzcycgOiAnUGhvbmUgTnVtYmVyJ319PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHRcIiBbKG5nTW9kZWwpXT1cImxpbmsucmVkaXJlY3Rpb25VcmxcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCA/ICdleGFtcGxlIDogaHR0cHM6Ly9mYWNlYm9vay5jb20nOiAnJ1wiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5zaG93SWNvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImljb24tY29sb3IgcHgtMyBtYi0zIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG1iLTQgdy0xMDBcIj5JY29uIENvbG9yPC9sYWJlbD5cclxuICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImljb25EYXRhLmNvbG9yXCIgY2xhc3M9XCJjdXN0b20taW5wdXRcIiAoY2xpY2spPVwiY29sb3JJbnB1dC5jbGljaygpXCI+PC9kaXY+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBbKG5nTW9kZWwpXT1cImljb25EYXRhLmNvbG9yXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlSWNvbkNvbG9yKClcIiBjbGFzcz1cImlucHV0LXRleHQgZC1ub25lXCJcclxuICAgICAgICAjY29sb3JJbnB1dCAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJhY2tncm91bmQtb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTMgbWItMlwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xXCI+U2hvdyBCYWNrZ3JvdW5kPC9sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbWwtYXV0b1wiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc3dpdGNoLWJ0biBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiaWNvbkRhdGEuc2hvd0JhY2tncm91bmRcIlxyXG4gICAgICAgICAgcm9sZT1cInN3aXRjaFwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uLWJhY2tncm91bmQgcHgtMyAgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgKm5nSWY9XCJpY29uRGF0YS5zaG93QmFja2dyb3VuZFwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG1iLTMgdy0xMDBcIj5JY29uIEJhY2tncm91bmQ8L2xhYmVsPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiaWNvbkRhdGEuYmFja2dyb3VuZENvbG9yXCIgY2xhc3M9XCJjdXN0b20taW5wdXRcIiAoY2xpY2spPVwiY29sb3JJbnB1dDEuY2xpY2soKVwiPjwvZGl2PlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJpY29uRGF0YS5iYWNrZ3JvdW5kQ29sb3JcIiBjbGFzcz1cImlucHV0LXRleHQgZC1ub25lXCIgI2NvbG9ySW5wdXQxIC8+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG48L3NlY3Rpb24+Il19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWxlbWVudHMvaW1hZ2UtZWRpdG9yL2ltYWdlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2ltYWdlLWVkaXRvci9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBU3hFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxhQUE0QixFQUM1QixhQUFvQyxFQUNyQyxTQUE2QyxFQUNwQixJQUFTLEVBQ2pDLFNBQW9CO1FBSnBCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGNB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QUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnV0dG9uLCBJY29uLCBJbWFnZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBNZWRpYVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVkaWEtc2VsZWN0b3IvbWVkaWEtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWxlbWVudFNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vZWRpdG9yLXNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBSZWRpcmVjdGlvbkxpbmtUeXBlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWltYWdlLWVkaXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRTbGlkZXJNb2R1bGUsIE1hdFByb2dyZXNzU3Bpbm5lcl0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlRWRpdG9yQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGV2ZW50c1NlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFbGVtZW50U2VydmljZVNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEltYWdlRWRpdG9yQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICApIHtcblxuICB9XG5cbiAgaW1hZ2VEYXRhOiBJbWFnZSA9IHtcbiAgICBpZDogJycsXG4gICAgdXJsOiAnJyxcbiAgICBibHVyaGFzaDogJycsXG4gICAgYWx0VGV4dDogJycsXG4gICAgcG9zaXRpb246IHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwXG4gICAgfSxcbiAgICBjb250ZW50OiB7XG4gICAgICBsYWJlbDogJycsXG4gICAgICBsaW5rVHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5QYWdlLFxuICAgICAgcmVkaXJlY3Rpb25Vcmw6ICcnLFxuICAgICAgcGFnZUlkOiAnJyxcbiAgICAgIG5ld1RhYjogZmFsc2VcbiAgICB9XG4gIH07XG4gIGljb25EYXRhOiBJY29uID0ge1xuICAgIHVybDogJycsXG4gICAgY29sb3I6ICcnLFxuICAgIHNob3dCYWNrZ3JvdW5kOiBmYWxzZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnXG4gIH1cbiAgc2VjdGlvbklkITogc3RyaW5nO1xuICBwcml2YXRlIGJhY2tEcm9wOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBsaW5rOiBCdXR0b24gPSB7XG4gICAgbGlua1R5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZSxcbiAgICBsYWJlbDogJycsXG4gICAgcmVkaXJlY3Rpb25Vcmw6ICcnLFxuICAgIHBhZ2VJZDogJycsXG4gICAgbmV3VGFiOiBmYWxzZVxuICB9O1xuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlY3Rpb25JZCA9IHRoaXMuZGF0YS5zZWN0aW9uSWQ7XG4gICAgaWYgKHRoaXMuZGF0YT8uc2hvd0ljb24pIHtcbiAgICAgIHRoaXMuaWNvbkRhdGEgPSB0aGlzLmRhdGEuaWNvbkRhdGE7XG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmljb25EYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbWFnZUhlbHBlckZ1bmN0aW9uKCk7XG4gICAgfVxuICB9XG4gIFJlZGlyZWN0aW9uTGluayA9IFJlZGlyZWN0aW9uTGlua1R5cGVcbiAgYWRkTGluazogYm9vbGVhbiA9IGZhbHNlO1xuICBtYXggPSAxMDA7XG4gIG1pbiA9IDA7XG5cblxuICBpbWdMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYXN5bmMgdXBkYXRlSW1hZ2UoKSB7XG4gICAgdGhpcy5pbWdMb2FkZXIgPSB0cnVlO1xuICAgIGNvbnN0IG1lZGlhU2VsZWN0b3JEaWFsb2cgPSB0aGlzLm1hdERpYWxvZy5vcGVuKE1lZGlhU2VsZWN0b3JDb21wb25lbnQsIHsgZGF0YTogeyBtdWx0aXBsZTogZmFsc2UgfSwgcGFuZWxDbGFzczogXCJtZWRpYS1zZWxlY3RvclwiIH0pXG4gICAgbWVkaWFTZWxlY3RvckRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xuICAgICAgICAgICAgdGhpcy5pY29uRGF0YS51cmwgPSByZXNbMF0uYXNzZXRzWzBdLnVybDtcbiAgICAgICAgICAgIGlmICh0aGlzLmljb25EYXRhLnVybCAmJiAodGhpcy5pY29uRGF0YS51cmwuaW5jbHVkZXMoJy5wbmcnKSB8fCB0aGlzLmljb25EYXRhLnVybC5pbmNsdWRlcygnLnN2ZycpKSkge1xuICAgICAgICAgICAgICB0aGlzLmV2ZW50c1NlcnZpY2UuaWNvbkNoYW5nZWQuZW1pdCh7IGlkOiB0aGlzLnNlY3Rpb25JZCArIHRoaXMuaWNvbkRhdGEuaWQsIGljb246IHRoaXMuaWNvbkRhdGEgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbWFnZURhdGEudXJsID0gcmVzWzBdLmFzc2V0c1swXS51cmw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW1nTG9hZGVyID0gZmFsc2VcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgY2hhbmdlSWNvbkNvbG9yKCkge1xuICAgIGRlYnVnZ2VyXG4gICAgdGhpcy5ldmVudHNTZXJ2aWNlLmljb25DaGFuZ2VkLmVtaXQoeyBpZDogdGhpcy5zZWN0aW9uSWQgKyB0aGlzLmljb25EYXRhLmlkLCBpY29uOiB0aGlzLmljb25EYXRhIH0pO1xuICB9XG5cbiAgaG9yaXpvbnRhbFBvc2l0aW9uKCkge1xuICAgIHRoaXMuZXZlbnRzU2VydmljZS5vYmplY3RQb3NpdGlvbkNoYW5nZUNoZWNrLmVtaXQoeyBpZDogdGhpcy5zZWN0aW9uSWQgKyB0aGlzLmltYWdlRGF0YS5pZCwgcG9zaXRpb246IHRoaXMuaW1hZ2VEYXRhLnBvc2l0aW9uIH0pXG4gIH1cblxuICBkZWxldGVJbWFnZSgpIHtcbiAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xuICAgICAgdGhpcy5pY29uRGF0YS51cmwgPSAnJztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmltYWdlRGF0YS51cmwgPSAnJztcbiAgICB9XG4gIH1cbiAgbGlua1R5cGU6IGFueVtdID0gW1xuICAgIHtcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZVxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5zZWN0aW9uXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsXG4gICAgfVxuICBdXG4gIHNlbGVjdGVkVHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZSA9IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZTtcbiAgY2hhbmdlVHlwZSh0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlKSB7XG4gICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0eXBlO1xuICAgIHRoaXMubGluay5saW5rVHlwZSA9IHRoaXMuc2VsZWN0ZWRUeXBlO1xuICB9XG4gIHRlbXBsYXRlUGFnZTogYW55W10gPSBbXTtcbiAgZ2V0VGVtcGxhdGVQYWdlKCkge1xuICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRUZW1wbGF0ZSgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMudGVtcGxhdGVQYWdlID0gcmVzLmRhdGE7XG4gICAgfSlcbiAgfVxuICBleHRlcm5hbExpbmtUeXBlOiBBcnJheTx0eXBlPiA9IFtcbiAgICB7XG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkVtYWlsXG4gICAgfSxcbiAgICB7XG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBob25lXG4gICAgfVxuICBdXG4gIGNvbGxlY3Rpb25MaXN0OiBhbnkgPSBbXTtcbiAgY2F0ZWdvcnlMaXN0OiBhbnkgPSBbXTtcbiAgY29sbGVjdGlvblBhdGg6IGFueSA9IFwiXCJcbiAgZ2V0Q29sbGVjdGlvbkxpc3QoKSB7XG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEFsbENvbGxlY3Rpb25zKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb25MaXN0ID0gcmVzO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgZ2V0Q2F0ZWdvcnlMaXN0KCkge1xuICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRBbGxDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHJlcztcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cblxuICBwYWdlTmFtZTogc3RyaW5nID0gXCJcIjtcbiAgYWRkQ29sbGVjdGlvblRvUGF0aCgpIHtcbiAgICBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiP2NvbGxlY3Rpb25zPVwiKSkge1xuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLnNwbGl0KFwiP2NvbGxlY3Rpb25zPVwiKVswXTtcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiP2NvbGxlY3Rpb25zPVwiICsgdGhpcy5jb2xsZWN0aW9uUGF0aDtcbiAgICAgIGlmICh0aGlzLmNhdGVnb3J5UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiJmNhdGVnb3J5PVwiICsgdGhpcy5jYXRlZ29yeVBhdGg7XG4gICAgICB9XG5cbiAgICB9IGVsc2UgaWYgKHRoaXMubGluay5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcImNhdGVnb3J5PVwiKSkge1xuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCImY29sbGVjdGlvbnM9XCIgKyB0aGlzLmNvbGxlY3Rpb25QYXRoO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiP2NvbGxlY3Rpb25zPVwiICsgdGhpcy5jb2xsZWN0aW9uUGF0aDtcbiAgICB9XG4gIH1cbiAgY2F0ZWdvcnlQYXRoOiBhbnkgPSBcIlwiO1xuICBhZGRDYXRlZ29yeVRvUGF0aCgpIHtcbiAgICBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiP2NhdGVnb3J5PVwiKSkge1xuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLnNwbGl0KFwiP2NhdGVnb3J5PVwiKVswXTtcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiP2NhdGVnb3J5PVwiICsgdGhpcy5jYXRlZ29yeVBhdGg7XG4gICAgICBpZiAodGhpcy5jb2xsZWN0aW9uUGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiJmNvbGxlY3Rpb25zPVwiICsgdGhpcy5jb2xsZWN0aW9uUGF0aDtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY29sbGVjdGlvbnM9XCIpKSB7XG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIiZjYXRlZ29yeT1cIiArIHRoaXMuY2F0ZWdvcnlQYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIj9jYXRlZ29yeT1cIiArIHRoaXMuY2F0ZWdvcnlQYXRoO1xuICAgIH1cbiAgfVxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGVkUGFnZUlkID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGNvbnN0IHNlbGVjdGVkUGFnZSA9IHRoaXMudGVtcGxhdGVQYWdlLmZpbmQocGFnZSA9PiBwYWdlLmlkID09PSBzZWxlY3RlZFBhZ2VJZCk7XG4gICAgaWYgKHNlbGVjdGVkUGFnZSkge1xuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gc2VsZWN0ZWRQYWdlLnBhdGg7XG4gICAgICB0aGlzLnBhZ2VOYW1lID0gc2VsZWN0ZWRQYWdlLnBhZ2VOYW1lO1xuICAgICAgaWYgKHRoaXMucGFnZU5hbWUgPT0gJ1Byb2R1Y3QgTGlzdCcpIHtcbiAgICAgICAgdGhpcy5nZXRDb2xsZWN0aW9uTGlzdCgpO1xuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGltYWdlSGVscGVyRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5pbWFnZURhdGEgPSB0aGlzLmRhdGEuaW1hZ2VEYXRhO1xuICAgIHRoaXMuYWRkTGluayA9IHRydWU7XG4gICAgaWYgKHRoaXMuZGF0YT8uaW1hZ2VEYXRhPy5jb250ZW50KSB7XG4gICAgICB0aGlzLmxpbmsgPSB0aGlzLmRhdGEuaW1hZ2VEYXRhPy5jb250ZW50O1xuICAgICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0aGlzLmxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGlua1R5cGUuRW1haWwgfHwgdGhpcy5saW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmtUeXBlLlBob25lID8gUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbCA6IHRoaXMubGluay5saW5rVHlwZTtcbiAgICAgIHRoaXMuYWRkTGluayA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmdldFRlbXBsYXRlUGFnZSgpO1xuICAgIGlmICh0aGlzLmxpbms/LnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY29sbGVjdGlvbnM9XCIpKSB7XG4gICAgICBhd2FpdCB0aGlzLmdldENvbGxlY3Rpb25MaXN0KCk7XG4gICAgICB0aGlzLnBhZ2VOYW1lID0gXCJQcm9kdWN0IExpc3RcIjtcbiAgICAgIGxldCBxdWVyeSA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybC5zcGxpdChcIj9cIilbMV07XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5KTtcbiAgICAgIHRoaXMuY29sbGVjdGlvblBhdGggPSBwYXJhbXMuZ2V0KCdjb2xsZWN0aW9ucycpO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rPy5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcImNhdGVnb3J5PVwiKSkge1xuICAgICAgYXdhaXQgdGhpcy5nZXRDYXRlZ29yeUxpc3QoKTtcbiAgICAgIHRoaXMucGFnZU5hbWUgPSBcIlByb2R1Y3QgTGlzdFwiO1xuICAgICAgbGV0IHF1ZXJ5ID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLnNwbGl0KFwiP1wiKVsxXTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnkpO1xuICAgICAgdGhpcy5jYXRlZ29yeVBhdGggPSBwYXJhbXMuZ2V0KCdjYXRlZ29yeScpO1xuICAgIH1cbiAgfVxuXG59XG5pbnRlcmZhY2UgdHlwZSB7XG4gIHR5cGU6IHN0cmluZztcbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1zZWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItc2VjdGlvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWQtdGV4dFwiPkltYWdlIFNldHRpbmdzPC9kaXY+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGYtMTggY3BcIlxuICAgICAgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+Y2xvc2U8L21hdC1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8IS0tIDxwIGNsYXNzPVwiaGVhZGluZyBtYi0wXCI+SW1hZ2U8L3A+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaW1hZ2UgY3BcIiAqbmdJZj1cIiFpbWFnZURhdGEudXJsICYmICFpY29uRGF0YS51cmxcIiAoY2xpY2spPVwidXBkYXRlSW1hZ2UoKVwiPlxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvNTQ3NTAwYzE3NDQ2OTg4MzAzNDN1cGxvYWQtb25lJTIwJTI4MSUyOS5wbmdcIlxuICAgICAgICBhbHQ9XCJcIj5cbiAgICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHQgbWItMFwiPlVwbG9hZCBhIGZpbGU8L3A+XG4gICAgICA8cCBjbGFzcz1cInVwbG9hZC10ZXh0IG1iLTBcIj5vciBzZWxlY3QgYW4gZXhpc3Rpbmcgb25lPC9wPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWQtdGV4dFwiPnVwIHRvIDMyTUI8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNlYyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJpbWFnZURhdGEudXJsIHx8IGljb25EYXRhLnVybFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbWdMb2FkZXJcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cImltYWdlRGF0YS51cmwgfHwgaWNvbkRhdGEudXJsXCIgW2FsdF09XCJpbWFnZURhdGEuYWx0VGV4dCA/PyAnJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVwYWxjZS1pbWFnZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJ1cGRhdGVJbWFnZSgpXCI+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIyNFwiIGNsYXNzPVwiaWNvbiB3LTQgaC00XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICBkPVwibTQgMTYgNC41ODU3OS00LjU4NThjLjc4MTA0LS43ODEgMi4wNDc0MS0uNzgxIDIuODI4NDEgMEwxNiAxNm0tMi0yIDEuNTg1OC0xLjU4NThjLjc4MS0uNzgxIDIuMDQ3NC0uNzgxIDIuODI4NCAwTDIwIDE0bS02LTZoLjAxTTYgMjBoMTJjMS4xMDQ2IDAgMi0uODk1NCAyLTJWNmMwLTEuMTA0NTctLjg5NTQtMi0yLTJINmMtMS4xMDQ1NyAwLTIgLjg5NTQzLTIgMnYxMmMwIDEuMTA0Ni44OTU0MyAyIDIgMlpcIj5cbiAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1pbWFnZSBjdXJzb3ItcG9pbnRlciBcIiAoY2xpY2spPVwiZGVsZXRlSW1hZ2UoKVwiPlxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCJcbiAgICAgICAgICAgIGhlaWdodD1cIjI0XCIgY2xhc3M9XCJpY29uIGgtNCB3LTRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgIGQ9XCJtMTkgNy0uODY3MyAxMi4xNDI1QzE4LjA1NzkgMjAuMTg5MSAxNy4xODcgMjEgMTYuMTM3OCAyMUg3Ljg2MjI0Yy0xLjA0OTI4IDAtMS45MjAxNi0uODEwOS0xLjk5NDkyLTEuODU3NUw1IDdtNSA0djZtNC02djZtMS0xMFY0YzAtLjU1MjI4LS40NDc3LTEtMS0xaC00Yy0uNTUyMjggMC0xIC40NDc3Mi0xIDF2M000IDdoMTZcIj5cbiAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWdMb2FkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZF9zcGlubmVyIGQtZmxleCB3LTEwMCBoLTEwMCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRhdGEuc2hvd0ljb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwidy0xMDAgcC0wLTEwIG1iLTIyXCIgKm5nSWY9XCJpbWFnZURhdGEuaGFzT3duUHJvcGVydHkoJ2FsdFRleHQnKVwiPlxuICAgICAgPHAgY2xhc3M9XCJoZWFkaW5nIG1iLTJcIj5BbHQgdGV4dDwvcD5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgYWx0IHRleHRcIiBjbGFzcz1cImlucHV0LWZpZWxkIHctMTAwXCIgWyhuZ01vZGVsKV09XCJpbWFnZURhdGEuYWx0VGV4dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+V2hlbiB0aGUgaW1hZ2UgZmFpbHMgdG8gbG9hZCwgdGhpcyB0ZXh0IHdpbGwgYmUgZGlzcGxheWVkLjwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImltYWdlIG1iLTIyXCIgKm5nSWY9XCJpbWFnZURhdGEuaGFzT3duUHJvcGVydHkoJ3Bvc2l0aW9uJylcIj5cbiAgICAgIDxwIGNsYXNzPVwiaGVhZGluZyBtYi0xXCI+SW1hZ2UgUG9zaXRpb248L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1hY3Rpb25cIj5cbiAgICAgICAgPGxhYmVsPkhvcml6b250YWw8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXN0YXJ0IGNwXCI+XG4gICAgICAgICAgPGlucHV0IFttaW5dPVwibWluXCIgW21heF09XCJtYXhcIiBzdGVwPVwiNVwiIHR5cGU9XCJyYW5nZVwiIFsobmdNb2RlbCldPVwiaW1hZ2VEYXRhLnBvc2l0aW9uLnhcIlxuICAgICAgICAgICAgKGlucHV0KT1cImhvcml6b250YWxQb3NpdGlvbigpXCIgY2xhc3M9XCJ3LTc1XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1hY3Rpb25cIiBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDtcIj5cbiAgICAgICAgPGxhYmVsPlZlcnRpY2FsPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1zdGFydCBjcFwiPlxuICAgICAgICAgIDxpbnB1dCBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCIgc3RlcD1cIjVcIiB0eXBlPVwicmFuZ2VcIiBbKG5nTW9kZWwpXT1cImltYWdlRGF0YS5wb3NpdGlvbi55XCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJob3Jpem9udGFsUG9zaXRpb24oKVwiIGNsYXNzPVwidy03NVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJncm91cHMgY3AgcHgtM1wiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBsaW5rVHlwZVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUeXBlJyA6IHR5cGUudHlwZSA9PT0gc2VsZWN0ZWRUeXBlfVwiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VUeXBlKHR5cGUudHlwZSlcIj57e3R5cGUudHlwZX19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbnRhaW5lciBtdC0zIG14LTNcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGFnZVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG10LTMgbWItMlwiPlNlbGVjdCBQYWdlPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cbiAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwibGluay5wYWdlSWRcIiAoY2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiB0ZW1wbGF0ZVBhZ2VcIiBbdmFsdWVdPVwicGFnZS5pZFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cbiAgICAgICAgICAgICAge3twYWdlLnBhZ2VOYW1lfX08L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIiBhbHQ9XCJcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlTmFtZSA9PSAnUHJvZHVjdCBMaXN0J1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTEgbXQtMyBtYi0yXCI+U2VsZWN0IENvbGxlY3Rpb248L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwiY29sbGVjdGlvblBhdGhcIiAobmdNb2RlbENoYW5nZSk9XCJhZGRDb2xsZWN0aW9uVG9QYXRoKClcIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29sbCBvZiBjb2xsZWN0aW9uTGlzdFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIiBbdmFsdWVdPVwiY29sbC5jb2xsZWN0aW9uTmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7Y29sbD8uY29sbGVjdGlvbk5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgQ2F0ZWdvcnk8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwiY2F0ZWdvcnlQYXRoXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYWRkQ2F0ZWdvcnlUb1BhdGgoKVwiPlxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb2xsIG9mIGNhdGVnb3J5TGlzdFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIiBbdmFsdWVdPVwiY29sbC5jYXRlZ29yeU5hbWVcIj5cbiAgICAgICAgICAgICAgICB7e2NvbGw/LmNhdGVnb3J5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvZGl2PiAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5zZWN0aW9uXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cIm10LTMgbWItMiBpbnB1dC1sYWJlbC0xXCI+U2VjdGlvbjwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XG4gICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsucGFnZUlkXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IHRoZSBTZWN0aW9uPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHRlbXBsYXRlUGFnZVswXT8uY29tcG9uZW50c1wiIFt2YWx1ZV09XCJzZWN0aW9uLmlkXCI+e3tzZWN0aW9uLnNlY3Rpb25OYW1lfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8yNjg0MTBjMTc0MjI4NjA1Mjk0MERvd24lMjAyLnBuZ1wiIGFsdD1cIlwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTEwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTJcIj5PcGVuIGluIGEgbmV3IGJyb3dzZXIgdGFiPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbWwtYXV0b1wiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc3dpdGNoLWJ0biBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwibGluay5uZXdUYWJcIlxuICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsIHx8IGxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FbWFpbCB8fCBsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGhvbmVcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWxlY3QgdHlwZTwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XG4gICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsubGlua1R5cGVcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgdGhlIFR5cGU8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgZXh0ZXJuYWxMaW5rVHlwZVwiIFt2YWx1ZV09XCJ0eXBlLnR5cGVcIj57e3R5cGUudHlwZX19PC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvd24tYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PGltZ1xuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI2ODQxMGMxNzQyMjg2MDUyOTQwRG93biUyMDIucG5nXCIgYWx0PVwiXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbCBtYi0yXCI+e3tsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgPyAnV2Vic2l0ZScgOiBsaW5rLmxpbmtUeXBlID09PVxuICAgICAgICAgIFJlZGlyZWN0aW9uTGluay5FbWFpbCA/ICdFbWFpbCBBZGRyZXNzJyA6ICdQaG9uZSBOdW1iZXInfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHRcIiBbKG5nTW9kZWwpXT1cImxpbmsucmVkaXJlY3Rpb25VcmxcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgPyAnZXhhbXBsZSA6IGh0dHBzOi8vZmFjZWJvb2suY29tJzogJydcIj5cbiAgICAgIDwvZGl2PlxuXG5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5zaG93SWNvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbG9yIHB4LTMgbWItMyBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTEgbWItNCB3LTEwMFwiPkljb24gQ29sb3I8L2xhYmVsPlxuICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImljb25EYXRhLmNvbG9yXCIgY2xhc3M9XCJjdXN0b20taW5wdXRcIiAoY2xpY2spPVwiY29sb3JJbnB1dC5jbGljaygpXCI+PC9kaXY+XG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJpY29uRGF0YS5jb2xvclwiIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUljb25Db2xvcigpXCIgY2xhc3M9XCJpbnB1dC10ZXh0IGQtbm9uZVwiXG4gICAgICAgICNjb2xvcklucHV0IC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmFja2dyb3VuZC1vbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHgtMyBtYi0yXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xXCI+U2hvdyBCYWNrZ3JvdW5kPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1sLWF1dG9cIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzd2l0Y2gtYnRuIGN1cnNvci1wb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJpY29uRGF0YS5zaG93QmFja2dyb3VuZFwiXG4gICAgICAgICAgcm9sZT1cInN3aXRjaFwiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1iYWNrZ3JvdW5kIHB4LTMgIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAqbmdJZj1cImljb25EYXRhLnNob3dCYWNrZ3JvdW5kXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG1iLTMgdy0xMDBcIj5JY29uIEJhY2tncm91bmQ8L2xhYmVsPlxuICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImljb25EYXRhLmJhY2tncm91bmRDb2xvclwiIGNsYXNzPVwiY3VzdG9tLWlucHV0XCIgKGNsaWNrKT1cImNvbG9ySW5wdXQxLmNsaWNrKClcIj48L2Rpdj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBbKG5nTW9kZWwpXT1cImljb25EYXRhLmJhY2tncm91bmRDb2xvclwiIGNsYXNzPVwiaW5wdXQtdGV4dCBkLW5vbmVcIiAjY29sb3JJbnB1dDEgLz5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cblxuPC9zZWN0aW9uPiJdfQ==
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24
24
  exports: [ButtonElementComponent, TextElementComponent, BelowImageCardComponent, TopOfImageCardComponent, CoveringImageCardComponent, HeadingElementComponent, SimpoButtonComponent, SociaIconsComponent, CardSkeletonLoaderComponent, SvgDividerComponent, PropertyComponent, PortfolioComponent],
25
25
  }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBTXJFLE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CLFlBSHBCLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFDLG9CQUFvQixFQUFDLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFDLGlCQUFpQixFQUFDLGtCQUFrQixhQUNuUixzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBQyxvQkFBb0IsRUFBQyxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBQyxpQkFBaUIsRUFBQyxrQkFBa0I7Z0hBRWxSLG1CQUFtQixZQUhwQixzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBK0MsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUMsaUJBQWlCLEVBQUMsa0JBQWtCOzs0RkFHbFIsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFDLG9CQUFvQixFQUFDLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFDLGlCQUFpQixFQUFDLGtCQUFrQixDQUFDO29CQUM5UixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBQyxvQkFBb0IsRUFBQyxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBQyxpQkFBaUIsRUFBQyxrQkFBa0IsQ0FBQztpQkFDL1IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25FbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi90ZXh0L3RleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVsb3dJbWFnZUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2JlbG93LWltYWdlLWNhcmQvYmVsb3ctaW1hZ2UtY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb3BPZkltYWdlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vdG9wLW9mLWltYWdlLWNhcmQvdG9wLW9mLWltYWdlLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ292ZXJpbmdJbWFnZUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvdmVyaW5nLWltYWdlLWNhcmQvY292ZXJpbmctaW1hZ2UtY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIZWFkaW5nRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGluZy1lbGVtZW50L2hlYWRpbmctZWxlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaW1wb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi9zb2NpYS1pY29ucy9zb2NpYS1pY29ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYXJkU2tlbGV0b25Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtc2tlbGV0b24tbG9hZGVyL2NhcmQtc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuL3N2Zy1kaXZpZGVyL3N2Zy1kaXZpZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb3BlcnR5Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS9wcm9wZXJ0eS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3J0Zm9saW9Db21wb25lbnQgfSBmcm9tICcuL3BvcnRmb2xpby9wb3J0Zm9saW8uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0J1dHRvbkVsZW1lbnRDb21wb25lbnQsIFRleHRFbGVtZW50Q29tcG9uZW50LCBCZWxvd0ltYWdlQ2FyZENvbXBvbmVudCwgVG9wT2ZJbWFnZUNhcmRDb21wb25lbnQsIENvdmVyaW5nSW1hZ2VDYXJkQ29tcG9uZW50LCBIZWFkaW5nRWxlbWVudENvbXBvbmVudCxTaW1wb0J1dHRvbkNvbXBvbmVudCxTb2NpYUljb25zQ29tcG9uZW50LCBDYXJkU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsIFN2Z0RpdmlkZXJDb21wb25lbnQsUHJvcGVydHlDb21wb25lbnQsUG9ydGZvbGlvQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbQnV0dG9uRWxlbWVudENvbXBvbmVudCwgVGV4dEVsZW1lbnRDb21wb25lbnQsIEJlbG93SW1hZ2VDYXJkQ29tcG9uZW50LCBUb3BPZkltYWdlQ2FyZENvbXBvbmVudCwgQ292ZXJpbmdJbWFnZUNhcmRDb21wb25lbnQsIEhlYWRpbmdFbGVtZW50Q29tcG9uZW50LFNpbXBvQnV0dG9uQ29tcG9uZW50LFNvY2lhSWNvbnNDb21wb25lbnQsIENhcmRTa2VsZXRvbkxvYWRlckNvbXBvbmVudCwgU3ZnRGl2aWRlckNvbXBvbmVudCxQcm9wZXJ0eUNvbXBvbmVudCxQb3J0Zm9saW9Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2ltcG9FbGVtZW50c01vZHVsZSB7IH1cclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBTXJFLE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CLFlBSHBCLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFDLG9CQUFvQixFQUFDLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFDLGlCQUFpQixFQUFDLGtCQUFrQixhQUNuUixzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBQyxvQkFBb0IsRUFBQyxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBQyxpQkFBaUIsRUFBQyxrQkFBa0I7Z0hBRWxSLG1CQUFtQixZQUhwQixzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBK0MsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUMsaUJBQWlCLEVBQUMsa0JBQWtCOzs0RkFHbFIsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFDLG9CQUFvQixFQUFDLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFDLGlCQUFpQixFQUFDLGtCQUFrQixDQUFDO29CQUM5UixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBQyxvQkFBb0IsRUFBQyxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBQyxpQkFBaUIsRUFBQyxrQkFBa0IsQ0FBQztpQkFDL1IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmVsb3dJbWFnZUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2JlbG93LWltYWdlLWNhcmQvYmVsb3ctaW1hZ2UtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9wT2ZJbWFnZUNhcmRDb21wb25lbnQgfSBmcm9tICcuL3RvcC1vZi1pbWFnZS1jYXJkL3RvcC1vZi1pbWFnZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3ZlcmluZ0ltYWdlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY292ZXJpbmctaW1hZ2UtY2FyZC9jb3ZlcmluZy1pbWFnZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkaW5nRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGluZy1lbGVtZW50L2hlYWRpbmctZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcG9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3NpbXBvLWJ1dHRvbi9zaW1wby1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFNvY2lhSWNvbnNDb21wb25lbnQgfSBmcm9tICcuL3NvY2lhLWljb25zL3NvY2lhLWljb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkU2tlbGV0b25Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtc2tlbGV0b24tbG9hZGVyL2NhcmQtc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdmdEaXZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlDb21wb25lbnQgfSBmcm9tICcuL3Byb3BlcnR5L3Byb3BlcnR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3J0Zm9saW9Db21wb25lbnQgfSBmcm9tICcuL3BvcnRmb2xpby9wb3J0Zm9saW8uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0J1dHRvbkVsZW1lbnRDb21wb25lbnQsIFRleHRFbGVtZW50Q29tcG9uZW50LCBCZWxvd0ltYWdlQ2FyZENvbXBvbmVudCwgVG9wT2ZJbWFnZUNhcmRDb21wb25lbnQsIENvdmVyaW5nSW1hZ2VDYXJkQ29tcG9uZW50LCBIZWFkaW5nRWxlbWVudENvbXBvbmVudCxTaW1wb0J1dHRvbkNvbXBvbmVudCxTb2NpYUljb25zQ29tcG9uZW50LCBDYXJkU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsIFN2Z0RpdmlkZXJDb21wb25lbnQsUHJvcGVydHlDb21wb25lbnQsUG9ydGZvbGlvQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0J1dHRvbkVsZW1lbnRDb21wb25lbnQsIFRleHRFbGVtZW50Q29tcG9uZW50LCBCZWxvd0ltYWdlQ2FyZENvbXBvbmVudCwgVG9wT2ZJbWFnZUNhcmRDb21wb25lbnQsIENvdmVyaW5nSW1hZ2VDYXJkQ29tcG9uZW50LCBIZWFkaW5nRWxlbWVudENvbXBvbmVudCxTaW1wb0J1dHRvbkNvbXBvbmVudCxTb2NpYUljb25zQ29tcG9uZW50LCBDYXJkU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsIFN2Z0RpdmlkZXJDb21wb25lbnQsUHJvcGVydHlDb21wb25lbnQsUG9ydGZvbGlvQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2ltcG9FbGVtZW50c01vZHVsZSB7IH1cbiJdfQ==