simpo-component-library 3.6.967 → 3.6.970
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
- package/esm2022/lib/components/deprecated-section/deprecated-section.component.mjs +1 -1
- package/esm2022/lib/components/document/document.component.mjs +3 -3
- package/esm2022/lib/components/image-loading/image-loading.component.mjs +3 -3
- package/esm2022/lib/components/payment-details/payment-details.component.mjs +3 -3
- package/esm2022/lib/constants/business.constant.mjs +1 -1
- package/esm2022/lib/directive/alignment.directive.mjs +1 -1
- package/esm2022/lib/directive/blur-content.directive.mjs +1 -1
- package/esm2022/lib/directive/borderlessImage.directive.mjs +1 -1
- package/esm2022/lib/directive/button-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/button-editor.directive.mjs +1 -1
- package/esm2022/lib/directive/color.directive.mjs +1 -1
- package/esm2022/lib/directive/column-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/container-alignment.directive.mjs +1 -1
- package/esm2022/lib/directive/container-fir.directive.mjs +1 -1
- package/esm2022/lib/directive/content-title-spacing.directive.mjs +1 -1
- package/esm2022/lib/directive/contenteditable.directive.mjs +1 -1
- package/esm2022/lib/directive/corner-directive.mjs +1 -1
- package/esm2022/lib/directive/height.directive.mjs +1 -1
- package/esm2022/lib/directive/hover-animation.directive.mjs +1 -1
- package/esm2022/lib/directive/hoverborder.directive.mjs +1 -1
- package/esm2022/lib/directive/icon-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/image-container.directive.mjs +1 -1
- package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/image-editor.directive.mjs +1 -1
- package/esm2022/lib/directive/image-position.directive.mjs +1 -1
- package/esm2022/lib/directive/letters-only.directive.mjs +1 -1
- package/esm2022/lib/directive/merge-header.directive.mjs +1 -1
- package/esm2022/lib/directive/numbers-only.directive.mjs +1 -1
- package/esm2022/lib/directive/position-layout-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/set-dynamic-background.directive.mjs +1 -1
- package/esm2022/lib/directive/spacing-around.directive.mjs +1 -1
- package/esm2022/lib/directive/spacing-horizontal.directive.mjs +1 -1
- package/esm2022/lib/directive/spacing.directive.mjs +1 -1
- package/esm2022/lib/directive/text-background-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/text-size.directive.mjs +1 -1
- package/esm2022/lib/directive/translate-onhover.directive.mjs +1 -1
- package/esm2022/lib/directive/video-directive.directive.mjs +1 -1
- package/esm2022/lib/directive/wrap-containers.directive.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/categories-with-image-background-columns/categories-with-image-background-columns.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.component.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/scheme-selection/scheme-selection.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/schemes/schemes.component.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
- package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
- package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
- package/esm2022/lib/elements/address-list/address-list.component.mjs +3 -3
- package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
- package/esm2022/lib/elements/booking-cart-groups/booking-cart-groups.component.mjs +3 -3
- package/esm2022/lib/elements/button/button.component.mjs +3 -3
- package/esm2022/lib/elements/button/button.model.mjs +1 -1
- package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +3 -3
- package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
- package/esm2022/lib/elements/editor-service.service.mjs +1 -1
- package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
- package/esm2022/lib/elements/index.mjs +1 -1
- package/esm2022/lib/elements/link-editor/link-editor.component.mjs +3 -3
- package/esm2022/lib/elements/list-home-appointment/list-home-appointment.component.mjs +3 -3
- package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
- package/esm2022/lib/elements/my-bookings/my-bookings.component.mjs +3 -3
- package/esm2022/lib/elements/portfolio/portfolio.component.mjs +3 -3
- package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +3 -3
- package/esm2022/lib/elements/property/property.component.mjs +3 -3
- package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
- package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +3 -3
- package/esm2022/lib/elements/text/text.component.mjs +3 -3
- package/esm2022/lib/elements/text-editor/text-editor.component.mjs +7 -7
- package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
- package/esm2022/lib/pipes/amount.pipe.mjs +1 -1
- package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
- package/esm2022/lib/sections/BaseSection.mjs +1 -1
- package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
- package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +3 -3
- package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
- package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
- package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
- package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
- package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
- package/esm2022/lib/sections/brand-story-section/brand-story-section.component.mjs +3 -3
- package/esm2022/lib/sections/brand-story-section/brand-story-section.modal.mjs +1 -1
- package/esm2022/lib/sections/button-grid-section/button-grid-section.component.mjs +3 -3
- package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
- package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
- package/esm2022/lib/sections/condensed-and-gradient/condensed-and-gradient.component.mjs +3 -3
- package/esm2022/lib/sections/countdown-banner/countdown-banner.component.mjs +3 -3
- package/esm2022/lib/sections/countdown-banner/countdown-banner.component.model.mjs +1 -1
- package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.component.mjs +3 -3
- package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.modal.mjs +1 -1
- package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
- package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
- package/esm2022/lib/sections/feature-experience-section/feature-experience-section.component.mjs +3 -3
- package/esm2022/lib/sections/feature-experience-section/feature-experience-section.modal.mjs +1 -1
- package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
- package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
- package/esm2022/lib/sections/footer/footer.component.mjs +3 -3
- package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
- package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.component.mjs +3 -3
- package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.modal.mjs +1 -1
- package/esm2022/lib/sections/header-section/header-section.component.mjs +3 -3
- package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
- package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
- package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
- package/esm2022/lib/sections/image-background/image-background/image-background.component.mjs +3 -3
- package/esm2022/lib/sections/image-background/image-background/image-background.component.model.mjs +1 -1
- package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
- package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.component.mjs +3 -3
- package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.model.mjs +1 -1
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
- package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
- package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
- package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
- package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
- package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
- package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
- package/esm2022/lib/sections/moving-text/moving-text.component.mjs +3 -3
- package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
- package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
- package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
- package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
- package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
- package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +3 -3
- package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +1 -1
- package/esm2022/lib/sections/overlapping-image/overlapping-image.component.mjs +3 -3
- package/esm2022/lib/sections/overlapping-image/overlapping-image.component.modal.mjs +1 -1
- package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
- package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
- package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
- package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
- package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
- package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
- package/esm2022/lib/sections/product-info-section/product-info-section.component.mjs +3 -3
- package/esm2022/lib/sections/product-info-section/product-info-section.component.modal.mjs +1 -1
- package/esm2022/lib/sections/property-component/property-component.component.mjs +3 -3
- package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
- package/esm2022/lib/sections/property-list/property-list.component.mjs +3 -3
- package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +91 -13
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
- package/esm2022/lib/sections/registration-form/registration-form.component.mjs +3 -3
- package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
- package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +3 -3
- package/esm2022/lib/sections/scheme-detail/scheme-detail.modal.mjs +1 -1
- package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
- package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
- package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
- package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
- package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-slider/testimonial-slider.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
- package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
- package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
- package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +3 -3
- package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-carousel-section/video-carousel-section.component.mjs +3 -3
- package/esm2022/lib/sections/video-carousel-section/video-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/video-grid-section/video-grid-section.component.mjs +3 -3
- package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -3
- package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +3 -3
- package/esm2022/lib/sections/view-blog/view-blog.component.mjs +357 -1143
- package/esm2022/lib/services/analytics.service.mjs +1 -1
- package/esm2022/lib/services/booking-product-cart.service.mjs +1 -1
- package/esm2022/lib/services/cart.service.mjs +1 -1
- package/esm2022/lib/services/endUser.service.mjs +1 -1
- package/esm2022/lib/services/image-upload-service.service.mjs +1 -1
- package/esm2022/lib/services/rest.service.mjs +19 -2
- package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
- package/esm2022/lib/services/storage.service.mjs +1 -1
- package/esm2022/lib/styles/gradient-extension.mjs +1 -1
- package/esm2022/lib/styles/index.mjs +1 -1
- package/esm2022/lib/styles/style.model.mjs +1 -1
- package/esm2022/lib/styles/text-size.extension.mjs +1 -1
- package/esm2022/lib/styles/types.mjs +1 -1
- package/esm2022/lib/tokens/api-token.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/simpo-component-library.mjs +611 -1306
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/sections/recent-blog-post-section/recent-blog-post-section.component.d.ts +20 -2
- package/lib/sections/view-blog/view-blog.component.d.ts +7 -1
- package/lib/services/rest.service.d.ts +2 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.970.tgz +0 -0
- package/simpo-component-library-3.6.967.tgz +0 -0
|
@@ -1,1161 +1,339 @@
|
|
|
1
1
|
import { CommonModule, DatePipe, isPlatformBrowser } from '@angular/common';
|
|
2
2
|
import { Component, Inject, Input, PLATFORM_ID, } from '@angular/core';
|
|
3
|
+
import { RecentBlogPostSectionComponent } from '../recent-blog-post-section/recent-blog-post-section.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "./../../services/events.service";
|
|
5
|
-
import * as i2 from "
|
|
6
|
+
import * as i2 from "./../../services/rest.service";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
6
8
|
export class ViewBlogComponent {
|
|
7
|
-
constructor(_eventService, _elementRef, platformId) {
|
|
9
|
+
constructor(_eventService, restService, _elementRef, platformId) {
|
|
8
10
|
this._eventService = _eventService;
|
|
11
|
+
this.restService = restService;
|
|
9
12
|
this._elementRef = _elementRef;
|
|
10
13
|
this.responseData = {
|
|
11
|
-
subIndustryId: null,
|
|
12
|
-
subIndustryName:
|
|
13
|
-
displayId:
|
|
14
|
-
articleSlug:
|
|
15
|
-
updatedTimeStamp:
|
|
16
|
-
readTime:
|
|
17
|
-
wordCount:
|
|
18
|
-
totalVisits: 0,
|
|
19
|
-
id:
|
|
20
|
-
businessId:
|
|
21
|
-
time: 0,
|
|
22
|
-
version:
|
|
23
|
-
blocks: [
|
|
24
|
-
{
|
|
25
|
-
id:
|
|
26
|
-
type:
|
|
27
|
-
data: {
|
|
28
|
-
text:
|
|
29
|
-
level:
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id:
|
|
34
|
-
type:
|
|
35
|
-
data: {
|
|
36
|
-
caption:
|
|
37
|
-
withBorder: false,
|
|
38
|
-
withBackground: false,
|
|
39
|
-
stretched: false,
|
|
40
|
-
file: {
|
|
41
|
-
url:
|
|
42
|
-
height:
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id:
|
|
48
|
-
type:
|
|
49
|
-
data: {
|
|
50
|
-
text:
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
id:
|
|
55
|
-
type:
|
|
56
|
-
data: {
|
|
57
|
-
text:
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
id:
|
|
62
|
-
type:
|
|
63
|
-
data: {
|
|
64
|
-
text:
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
id:
|
|
69
|
-
type:
|
|
70
|
-
data: {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Not because your designs were outdated.</span>',
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
id: '9pqofrbOW0',
|
|
148
|
-
type: 'paragraph',
|
|
149
|
-
data: {
|
|
150
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">But because </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">they simply forgot about your business.</span>',
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
id: 'IE9A-uBWBg',
|
|
155
|
-
type: 'paragraph',
|
|
156
|
-
data: {
|
|
157
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This is one of the biggest challenges jewellery retailers face today.</span>',
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
id: 'MF3K4P54FE',
|
|
162
|
-
type: 'paragraph',
|
|
163
|
-
data: {
|
|
164
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Most jewellery owners spend thousands of rupees attracting new customers while unintentionally neglecting the customers who have already trusted them.</span>',
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
id: 's_Na0psxmH',
|
|
169
|
-
type: 'paragraph',
|
|
170
|
-
data: {
|
|
171
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The result?</span>',
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
id: 'FeKyQmpgXr',
|
|
176
|
-
type: 'list',
|
|
177
|
-
data: {
|
|
178
|
-
style: 'unordered',
|
|
179
|
-
items: [
|
|
180
|
-
'Customers purchase once and never return.',
|
|
181
|
-
'Gold scheme members stop paying monthly instalments.',
|
|
182
|
-
'Staff spend hours making reminder calls.',
|
|
183
|
-
'Customer records remain in paper files or Excel sheets.',
|
|
184
|
-
'Festival campaigns reach only a fraction of past buyers.',
|
|
185
|
-
'Competitors reconnect with your customers before you do.',
|
|
186
|
-
],
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
id: 'zVORjT8DOu',
|
|
191
|
-
type: 'paragraph',
|
|
192
|
-
data: {
|
|
193
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">If this sounds familiar, you\'re not alone.</span>',
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
id: 'oHBeq3cDjH',
|
|
198
|
-
type: 'paragraph',
|
|
199
|
-
data: {
|
|
200
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The good news is that increasing repeat customers doesn\'t always require a bigger marketing budget.</span>',
|
|
201
|
-
},
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
id: 'xbhYCptZpM',
|
|
205
|
-
type: 'paragraph',
|
|
206
|
-
data: {
|
|
207
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Often, it requires a better customer retention strategy.</span>',
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
id: '8jTf7G2zLd',
|
|
212
|
-
type: 'paragraph',
|
|
213
|
-
data: {
|
|
214
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">In this guide, we\'ll explore practical strategies that leading jewellery retailers use to increase customer loyalty, improve gold scheme collections, and build a business where customers keep coming back year after year.</span>',
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
id: 'uNUXVV2HAF',
|
|
219
|
-
type: 'header',
|
|
220
|
-
data: {
|
|
221
|
-
text: 'Why Repeat Customers Matter More Than New Customers',
|
|
222
|
-
level: 1,
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
id: 'AraiFCgo1I',
|
|
227
|
-
type: 'paragraph',
|
|
228
|
-
data: {
|
|
229
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Every jewellery retailer dreams of attracting new customers.</span>',
|
|
230
|
-
},
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
id: '11DHzXNNRT',
|
|
234
|
-
type: 'paragraph',
|
|
235
|
-
data: {
|
|
236
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">But the most profitable stores know a simple truth:</span>',
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
id: 'W0A0GxNHS7',
|
|
241
|
-
type: 'paragraph',
|
|
242
|
-
data: {
|
|
243
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The easiest customer to sell to is someone who has already bought from you.</span>',
|
|
244
|
-
},
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
id: 'KajmNOsrms',
|
|
248
|
-
type: 'paragraph',
|
|
249
|
-
data: {
|
|
250
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Think about a typical jewellery customer.</span>',
|
|
251
|
-
},
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
id: 'XIPJk8oGd5',
|
|
255
|
-
type: 'paragraph',
|
|
256
|
-
data: {
|
|
257
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A person buying an engagement ring today might later purchase:</span>',
|
|
258
|
-
},
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
id: '6udc4_lhcx',
|
|
262
|
-
type: 'list',
|
|
263
|
-
data: {
|
|
264
|
-
style: 'unordered',
|
|
265
|
-
items: [
|
|
266
|
-
'Wedding jewellery',
|
|
267
|
-
'Anniversary gifts',
|
|
268
|
-
'Baby shower jewellery',
|
|
269
|
-
'Festival collections',
|
|
270
|
-
'Gold coins',
|
|
271
|
-
'Monthly gold savings schemes',
|
|
272
|
-
],
|
|
273
|
-
},
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
id: '5KjzrI2UnH',
|
|
277
|
-
type: 'paragraph',
|
|
278
|
-
data: {
|
|
279
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Over a lifetime, one customer can generate multiple purchases.</span>',
|
|
280
|
-
},
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
id: '3XzZwU5W7z',
|
|
284
|
-
type: 'paragraph',
|
|
285
|
-
data: {
|
|
286
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The challenge is staying connected between those occasions.</span>',
|
|
287
|
-
},
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
id: 'AdmnsV9cTl',
|
|
291
|
-
type: 'paragraph',
|
|
292
|
-
data: {
|
|
293
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Unfortunately, many jewellery stores lose touch after the first sale.</span>',
|
|
294
|
-
},
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
id: 'PEDGnjTgfV',
|
|
298
|
-
type: 'paragraph',
|
|
299
|
-
data: {
|
|
300
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No follow-up.</span>',
|
|
301
|
-
},
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
id: 'E1n0EGLScQ',
|
|
305
|
-
type: 'paragraph',
|
|
306
|
-
data: {
|
|
307
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No reminders.</span>',
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
id: '9mqQlu_m94',
|
|
312
|
-
type: 'paragraph',
|
|
313
|
-
data: {
|
|
314
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No personalized communication.</span>',
|
|
315
|
-
},
|
|
316
|
-
},
|
|
317
|
-
{
|
|
318
|
-
id: 'faQUMozk8E',
|
|
319
|
-
type: 'paragraph',
|
|
320
|
-
data: {
|
|
321
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No loyalty program.</span>',
|
|
322
|
-
},
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
id: '95FLH2Z5fH',
|
|
326
|
-
type: 'paragraph',
|
|
327
|
-
data: {
|
|
328
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Eventually, the customer walks into another jewellery store—not because they\'re unhappy, but because the competitor stayed visible.</span>',
|
|
329
|
-
},
|
|
14
|
+
"subIndustryId": null,
|
|
15
|
+
"subIndustryName": "",
|
|
16
|
+
"displayId": "BG1784",
|
|
17
|
+
"articleSlug": "Case-Study-How-a-Jewellery-Retailer-Increased--Customer-Engagement-Using-PassbookApp",
|
|
18
|
+
"updatedTimeStamp": "2026-08-04T11:59:24.000+00:00",
|
|
19
|
+
"readTime": "3",
|
|
20
|
+
"wordCount": 634,
|
|
21
|
+
"totalVisits": 0,
|
|
22
|
+
"id": "1f18ffbd-3f98-65c3-a377-9d29a781b978",
|
|
23
|
+
"businessId": "1f19567a-ce26-6790-8a14-c786fc084a82",
|
|
24
|
+
"time": 0,
|
|
25
|
+
"version": "",
|
|
26
|
+
"blocks": [
|
|
27
|
+
{
|
|
28
|
+
"id": "u2zR4Q7AUy",
|
|
29
|
+
"type": "header",
|
|
30
|
+
"data": {
|
|
31
|
+
"text": "Case Study: How a Jewellery Retailer Increased Customer Engagement by 40% Using PassbookApp",
|
|
32
|
+
"level": 1
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "0UJ1WqdVfn",
|
|
37
|
+
"type": "image",
|
|
38
|
+
"data": {
|
|
39
|
+
"caption": "",
|
|
40
|
+
"withBorder": false,
|
|
41
|
+
"withBackground": false,
|
|
42
|
+
"stretched": false,
|
|
43
|
+
"file": {
|
|
44
|
+
"url": "https://prod-simpo.s3.ap-south-1.amazonaws.com/images/169752c1785844350473ChatGPT%20Image%20Aug%204%2C%202026%2C%2005_22_18%20PM.png",
|
|
45
|
+
"height": "500px"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "YHOzmi5Xg7",
|
|
51
|
+
"type": "paragraph",
|
|
52
|
+
"data": {
|
|
53
|
+
"text": "<span class=\"\">In today’s fast-paced retail market,</span><span class=\"\"> building long-term customer loyalty and maintaining active engagement is a major hurdle for traditional jewelers.</span><span class=\"\"> While gold and silver saving schemes (like 10+1 monthly deposit plans) have long been the backbone of customer acquisition,</span><span class=\"\"> managing them through traditional paper passbooks often leads to low engagement,</span><span class=\"\"> missed payments,</span><span class=\"\"> lost physical books,</span><span class=\"\"> and ultimate drop-offs.</span>"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "mouEbrfx7y",
|
|
58
|
+
"type": "paragraph",
|
|
59
|
+
"data": {
|
|
60
|
+
"text": "<span class=\"\">For multi-location retailers,</span><span class=\"\"> these challenges are amplified.</span><span class=\"\"> Physical registers and manual follow-ups at each store make creating a unified view of the customer let alone the business virtually impossible.</span>"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "M7Yn86IgjR",
|
|
65
|
+
"type": "paragraph",
|
|
66
|
+
"data": {
|
|
67
|
+
"text": "<span class=\"\">This </span><b>jewellery customer engagement case study</b><span class=\"\"> demonstrates how a prominent retail jeweler leveraged </span><b>PassbookApp </b><span class=\"\">a modern </span><b>digital passbook for jewellery stores</b><span class=\"\"> to overhaul their operations,</span><span class=\"\"> automate customer communication via WhatsApp,</span><span class=\"\"> and drive significant business growth.</span>"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "-w5Wsn54mZ",
|
|
72
|
+
"type": "header",
|
|
73
|
+
"data": {
|
|
74
|
+
"text": "Featured Success Story: How PassbookApp Took Lagu Bandhu Jewellers from Registers to Real-Time",
|
|
75
|
+
"level": 2
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "udUETPz9sN",
|
|
80
|
+
"type": "image",
|
|
81
|
+
"data": {
|
|
82
|
+
"caption": "",
|
|
83
|
+
"withBorder": false,
|
|
84
|
+
"withBackground": false,
|
|
85
|
+
"stretched": false,
|
|
86
|
+
"file": {
|
|
87
|
+
"url": "https://prod-simpo.s3.ap-south-1.amazonaws.com/images/767044c1785843848220Slide%2016_9%20-%201%20%284%29.png",
|
|
88
|
+
"height": "500px"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "PJVUAhqL56",
|
|
94
|
+
"type": "paragraph",
|
|
95
|
+
"data": {
|
|
96
|
+
"text": "<span class=\"\">Lagu Bandhu Jewellers,</span><span class=\"\"> a legacy brand since 1936 with multiple store locations,</span><span class=\"\"> faced a critical operational bottleneck.</span><span class=\"\"> Managing jewellery saving schemes across numerous branches using physical registers meant payments were difficult to track centrally,</span><span class=\"\"> follow-ups were done manually,</span><span class=\"\"> and a single,</span><span class=\"\"> unified view of the business was missing.</span>"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "hzzFdvSk6f",
|
|
101
|
+
"type": "paragraph",
|
|
102
|
+
"data": {
|
|
103
|
+
"text": "<span class=\"\">They implemented PassbookApp as their dedicated </span><b>jewellery customer retention software</b><span class=\"\"> to replace their entire paper-based system with one digital workflow without disrupting existing operations.</span>"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"id": "4fpCmq4a0K",
|
|
108
|
+
"type": "paragraph",
|
|
109
|
+
"data": {
|
|
110
|
+
"text": "<span class=\"\">This </span><b>jewellery customer engagement case study</b><span class=\"\"> highlights the specific outcomes achieved by Lagu Bandhu with the platform:</span>"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "wB3_a5xRQ-",
|
|
115
|
+
"type": "list",
|
|
116
|
+
"data": {
|
|
117
|
+
"style": "unordered",
|
|
118
|
+
"items": [
|
|
119
|
+
"<b>Customer Convenience via Digital Payments:</b> A key feature was enabling customers to pay for their monthly schemes digitally, completely eliminating the need for a store visit.",
|
|
120
|
+
"<b>Centralized Multi-Location View:</b> Management now has a real-time, centralized scheme view across all store locations, a crucial element of their <b>digital transformation in jewellery retail</b>.",
|
|
121
|
+
"<b>Streamlined Operations:</b> Manual tracking and excessive paperwork have been nearly eliminated, optimizing staff time for sales."
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "iOWhHxrUGx",
|
|
127
|
+
"type": "paragraph",
|
|
128
|
+
"data": {
|
|
129
|
+
"text": "<span class=\"\">Reflecting on the implementation,</span><span class=\"\"> Mr.</span><span class=\"\"> Parag Lagu,</span><span class=\"\"> Director of Lagu Bandhu,</span><span class=\"\"> noted:</span>"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "06mLUFexdK",
|
|
134
|
+
"type": "paragraph",
|
|
135
|
+
"data": {
|
|
136
|
+
"text": "<i>“After more than two years with PassbookAPP, I can confidently say it’s been an outstanding experience. Their support team is responsive, knowledgeable, and truly committed to our growth. Any jeweler looking to streamline their operations would be wise to consider PassbookAPP.”</i>"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"id": "1hVxvYU-oE",
|
|
141
|
+
"type": "header",
|
|
142
|
+
"data": {
|
|
143
|
+
"text": "The Challenge: Friction in Traditional Jewellery Savings Schemes",
|
|
144
|
+
"level": 2
|
|
145
|
+
}
|
|
330
146
|
},
|
|
331
147
|
{
|
|
332
|
-
id:
|
|
333
|
-
type:
|
|
334
|
-
data: {
|
|
335
|
-
text: '
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
},
|
|
375
|
-
},
|
|
376
|
-
{
|
|
377
|
-
id: 'pfErs56YIa',
|
|
378
|
-
type: 'paragraph',
|
|
379
|
-
data: {
|
|
380
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Monthly gold savings schemes are excellent for customer retention.</span>',
|
|
381
|
-
},
|
|
382
|
-
},
|
|
383
|
-
{
|
|
384
|
-
id: 'sATc0rb9-x',
|
|
385
|
-
type: 'paragraph',
|
|
386
|
-
data: {
|
|
387
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">However, many customers miss instalments simply because they forget the due date.</span>',
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
{
|
|
391
|
-
id: 'RWNT1tQ_OV',
|
|
392
|
-
type: 'paragraph',
|
|
393
|
-
data: {
|
|
394
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Staff then spend hours making reminder calls.</span>',
|
|
395
|
-
},
|
|
396
|
-
},
|
|
397
|
-
{
|
|
398
|
-
id: '-s9MZhQNmg',
|
|
399
|
-
type: 'header',
|
|
400
|
-
data: {
|
|
401
|
-
text: '3. Everything Is Managed Manually',
|
|
402
|
-
level: 3,
|
|
403
|
-
},
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
id: '-DWy8vU25_',
|
|
407
|
-
type: 'paragraph',
|
|
408
|
-
data: {
|
|
409
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Many retailers still depend on:</span>',
|
|
410
|
-
},
|
|
411
|
-
},
|
|
412
|
-
{
|
|
413
|
-
id: 'PQTOI6py5T',
|
|
414
|
-
type: 'list',
|
|
415
|
-
data: {
|
|
416
|
-
style: 'unordered',
|
|
417
|
-
items: [
|
|
418
|
-
'Paper passbooks',
|
|
419
|
-
'Excel sheets',
|
|
420
|
-
'Registers',
|
|
421
|
-
'Manual calculations',
|
|
422
|
-
],
|
|
423
|
-
},
|
|
424
|
-
},
|
|
425
|
-
{
|
|
426
|
-
id: 'B7hdll3Cvd',
|
|
427
|
-
type: 'paragraph',
|
|
428
|
-
data: {
|
|
429
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This increases errors and consumes valuable staff time.</span>',
|
|
430
|
-
},
|
|
431
|
-
},
|
|
432
|
-
{
|
|
433
|
-
id: '7SINkRpmJZ',
|
|
434
|
-
type: 'header',
|
|
435
|
-
data: {
|
|
436
|
-
text: '4. No Customer Database',
|
|
437
|
-
level: 3,
|
|
438
|
-
},
|
|
439
|
-
},
|
|
148
|
+
"id": "dmfEJgoxCZ",
|
|
149
|
+
"type": "paragraph",
|
|
150
|
+
"data": {
|
|
151
|
+
"text": "<span class=\"\">Lagu Bandhu's experience perfectly mirrors the larger operational challenge faced by the industry.</span><span class=\"\"> Before partnering with PassbookApp,</span><span class=\"\"> traditional methods created a poor </span><b>jewellery customer experience</b><span class=\"\">:</span>"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"id": "apgUbKPOOw",
|
|
156
|
+
"type": "list",
|
|
157
|
+
"data": {
|
|
158
|
+
"style": "unordered",
|
|
159
|
+
"items": [
|
|
160
|
+
"<b>High Drop-off Rates:</b> Customers frequently forgot monthly installments, leading to lapsed accounts.",
|
|
161
|
+
"<b>Lack of Visibility:</b> Customers couldn’t track their accumulated balance or gold weight in real-time, decreasing their emotional investment in the scheme.",
|
|
162
|
+
"<b>Manual Administrative Burden:</b> Staff spent countless hours answering balance inquiries, issuing receipts, and making manual reminder calls.",
|
|
163
|
+
"<b>Weak Post-Maturity Engagement:</b> Once a savings scheme matured, redeeming the final product felt transactional rather than rewarding, leading to low repeat engagement."
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "1Oxq6T0Thd",
|
|
169
|
+
"type": "header",
|
|
170
|
+
"data": {
|
|
171
|
+
"text": "The Solution: Digital Transformation with PassbookApp",
|
|
172
|
+
"level": 2
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"id": "cCprUc9P78",
|
|
177
|
+
"type": "paragraph",
|
|
178
|
+
"data": {
|
|
179
|
+
"text": "<span class=\"\">The implementation at Lagu Bandhu leveraged PassbookApp’s complete </span><b>jewellery CRM software</b><span class=\"\"> and </span><b>jewellery loyalty software</b><span class=\"\"> capabilities to modernize operations.</span><span class=\"\"> By integrating these specific technologies,</span><span class=\"\"> the retailer was able to achieve significant gains:</span>"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "bnq2c4XM2h",
|
|
184
|
+
"type": "header",
|
|
185
|
+
"data": {
|
|
186
|
+
"text": "1. Digital Passbook Implementation",
|
|
187
|
+
"level": 3
|
|
188
|
+
}
|
|
189
|
+
},
|
|
440
190
|
{
|
|
441
|
-
id:
|
|
442
|
-
type:
|
|
443
|
-
data: {
|
|
444
|
-
text:
|
|
445
|
-
}
|
|
446
|
-
},
|
|
191
|
+
"id": "vJsIW753e2",
|
|
192
|
+
"type": "paragraph",
|
|
193
|
+
"data": {
|
|
194
|
+
"text": "<span class=\"\">Replacing physical booklets with a centralized </span><b>digital passbook for jewellery stores</b><span class=\"\"> allowed customers to view their total balance,</span><span class=\"\"> real-time gold weight,</span><span class=\"\"> paid vs.</span><span class=\"\"> remaining installments,</span><span class=\"\"> and maturity dates on-demand.</span>"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
447
197
|
{
|
|
448
|
-
id:
|
|
449
|
-
type:
|
|
450
|
-
data: {
|
|
451
|
-
text:
|
|
452
|
-
|
|
198
|
+
"id": "dg-PH8o6Gx",
|
|
199
|
+
"type": "header",
|
|
200
|
+
"data": {
|
|
201
|
+
"text": "2. WhatsApp Automation and Reminders",
|
|
202
|
+
"level": 3
|
|
203
|
+
}
|
|
453
204
|
},
|
|
454
205
|
{
|
|
455
|
-
id:
|
|
456
|
-
type:
|
|
457
|
-
data: {
|
|
458
|
-
text:
|
|
459
|
-
|
|
460
|
-
|
|
206
|
+
"id": "Zonf8HUZxr",
|
|
207
|
+
"type": "paragraph",
|
|
208
|
+
"data": {
|
|
209
|
+
"text": "<span class=\"\">Deploying </span><b>jewellery WhatsApp reminder software</b><span class=\"\"> ensured customers received automated receipts for digital payments,</span><span class=\"\"> timely installment reminders,</span><span class=\"\"> and maturity notifications,</span><span class=\"\"> leading to an 85% improvement in scheme renewals.</span>"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "9Z5r-NkdI6",
|
|
214
|
+
"type": "header",
|
|
215
|
+
"data": {
|
|
216
|
+
"text": "3. Integrated Jewellery CRM & Management",
|
|
217
|
+
"level": 3
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "h2QV9Sy6FZ",
|
|
222
|
+
"type": "paragraph",
|
|
223
|
+
"data": {
|
|
224
|
+
"text": "<span class=\"\">PassbookApp’s integrated </span><b>jewellery management software</b><span class=\"\"> provided a single dashboard for customer purchase history and scheme progress.</span><span class=\"\"> This data gave store staff personalized insights to use during showroom visits.</span>"
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"id": "iX-2u9Qu09",
|
|
229
|
+
"type": "header",
|
|
230
|
+
"data": {
|
|
231
|
+
"text": "Results: The Impact on Customer Engagement and Business Growth",
|
|
232
|
+
"level": 2
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"id": "U7zcr-cBpQ",
|
|
237
|
+
"type": "paragraph",
|
|
238
|
+
"data": {
|
|
239
|
+
"text": "<span class=\"\">Within just six months,</span><span class=\"\"> the implementations driven by PassbookApp delivered transformative business results:</span>"
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"id": "qEj24FZAyc",
|
|
244
|
+
"type": "list",
|
|
245
|
+
"data": {
|
|
246
|
+
"style": "unordered",
|
|
247
|
+
"items": [
|
|
248
|
+
"<b>40% Increase in Customer Engagement:</b> The digital passbook app became a critical, daily touchpoint for customers.",
|
|
249
|
+
"<b>85% Improvement in Scheme Renewals:</b> Automated reminders effectively eliminated missed installments.",
|
|
250
|
+
"<b>35% Boost in Repeat Purchases:</b> Personalized CRM insights allowed targeted offers upon maturity.",
|
|
251
|
+
"<b>70% Reduction in Operational Workload:</b> Eliminating manual tracking freed staff for high-value sales, mirroring Lagu Bandhu's administrative savings."
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"id": "k6rHNx3D1j",
|
|
257
|
+
"type": "header",
|
|
258
|
+
"data": {
|
|
259
|
+
"text": "Key Takeaways for Jewellery Merchants",
|
|
260
|
+
"level": 2
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"id": "MAHQfdvg_s",
|
|
265
|
+
"type": "paragraph",
|
|
266
|
+
"data": {
|
|
267
|
+
"text": "<span class=\"\">The successful </span><b>jewellery software success story</b><span class=\"\"> of retailers like Lagu Bandhu proves that modernization is key to sustainable </span><b>jewellery business growth</b><span class=\"\">:</span>"
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"id": "35a85Rq4C3",
|
|
272
|
+
"type": "list",
|
|
273
|
+
"data": {
|
|
274
|
+
"style": "ordered",
|
|
275
|
+
"items": [
|
|
276
|
+
"<b>Leverage the Right Tech for Your Scale:</b> As a <b>jewellery CRM case study</b> for multi-location businesses shows, centralized visibility is essential for operational control and personalized service.",
|
|
277
|
+
"<b>Meet Customers Where They Are:</b> Modern buyers demand mobile access. A <b>digital passbook for jewellery stores</b> with digital payment options is a baseline expectation.",
|
|
278
|
+
"<b>Automate for Efficiency:</b> Integrating <b>jewellery WhatsApp reminder software</b> creates high-impact communication with minimal manual effort."
|
|
279
|
+
]
|
|
280
|
+
}
|
|
461
281
|
},
|
|
462
|
-
{
|
|
463
|
-
id:
|
|
464
|
-
type:
|
|
465
|
-
data: {
|
|
466
|
-
text:
|
|
467
|
-
|
|
282
|
+
{
|
|
283
|
+
"id": "KZR0pjPYzg",
|
|
284
|
+
"type": "header",
|
|
285
|
+
"data": {
|
|
286
|
+
"text": "Ready to Elevate Your Jewellery Store's Engagement?",
|
|
287
|
+
"level": 2
|
|
288
|
+
}
|
|
468
289
|
},
|
|
469
|
-
{
|
|
470
|
-
id:
|
|
471
|
-
type:
|
|
472
|
-
data: {
|
|
473
|
-
text:
|
|
474
|
-
}
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
id:
|
|
478
|
-
type:
|
|
479
|
-
data: {
|
|
480
|
-
text:
|
|
481
|
-
}
|
|
482
|
-
},
|
|
483
|
-
{
|
|
484
|
-
id: 'JBQAOZ2gqS',
|
|
485
|
-
type: 'paragraph',
|
|
486
|
-
data: {
|
|
487
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No festive greetings.</span>',
|
|
488
|
-
},
|
|
489
|
-
},
|
|
490
|
-
{
|
|
491
|
-
id: '75hJyzS12C',
|
|
492
|
-
type: 'paragraph',
|
|
493
|
-
data: {
|
|
494
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No product recommendations.</span>',
|
|
495
|
-
},
|
|
290
|
+
{
|
|
291
|
+
"id": "N-nQFBRoT_",
|
|
292
|
+
"type": "paragraph",
|
|
293
|
+
"data": {
|
|
294
|
+
"text": "<span class=\"\">If you are looking to scale your jewellery business,</span><span class=\"\"> eliminate manual administrative hassle like physical registers,</span><span class=\"\"> and increase customer loyalty,</span><span class=\"\"> it's time to upgrade your tech stack.</span>"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"id": "J5qrXdE3lv",
|
|
299
|
+
"type": "paragraph",
|
|
300
|
+
"data": {
|
|
301
|
+
"text": "<span class=\"\">See how PassbookApp helps jewellery businesses automate savings schemes,</span><span class=\"\"> improve renewals,</span><span class=\"\"> increase repeat purchases,</span><span class=\"\"> and build long-term customer loyalty.</span>"
|
|
302
|
+
}
|
|
496
303
|
},
|
|
497
304
|
{
|
|
498
|
-
id:
|
|
499
|
-
type:
|
|
500
|
-
data: {
|
|
501
|
-
text:
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
{
|
|
505
|
-
id: '6LcE7ECdcg',
|
|
506
|
-
type: 'header',
|
|
507
|
-
data: {
|
|
508
|
-
text: '15 Proven Strategies to Increase Repeat Customers',
|
|
509
|
-
level: 1,
|
|
510
|
-
},
|
|
511
|
-
},
|
|
512
|
-
{
|
|
513
|
-
id: 'Nx632lI-wF',
|
|
514
|
-
type: 'header',
|
|
515
|
-
data: {
|
|
516
|
-
text: '1. Launch a Gold Savings Scheme That Keeps Customers Engaged',
|
|
517
|
-
level: 2,
|
|
518
|
-
},
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
id: 'J_ADpweVfi',
|
|
522
|
-
type: 'paragraph',
|
|
523
|
-
data: {
|
|
524
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">One of the smartest ways to increase repeat business is through a well-managed </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Gold Saving Scheme</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">.</span>',
|
|
525
|
-
},
|
|
526
|
-
},
|
|
527
|
-
{
|
|
528
|
-
id: 'S5uj000jqa',
|
|
529
|
-
type: 'paragraph',
|
|
530
|
-
data: {
|
|
531
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead of waiting for customers to return once a year, a gold scheme encourages monthly interaction with your brand.</span>',
|
|
532
|
-
},
|
|
533
|
-
},
|
|
534
|
-
{
|
|
535
|
-
id: 'xBrGqoTLrv',
|
|
536
|
-
type: 'paragraph',
|
|
537
|
-
data: {
|
|
538
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Every monthly payment becomes another touchpoint.</span>',
|
|
539
|
-
},
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
id: 'abNB9cO1Zj',
|
|
543
|
-
type: 'paragraph',
|
|
544
|
-
data: {
|
|
545
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Customers stay connected.</span>',
|
|
546
|
-
},
|
|
547
|
-
},
|
|
548
|
-
{
|
|
549
|
-
id: 'GLXBsIgN4m',
|
|
550
|
-
type: 'paragraph',
|
|
551
|
-
data: {
|
|
552
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Trust grows.</span>',
|
|
553
|
-
},
|
|
554
|
-
},
|
|
555
|
-
{
|
|
556
|
-
id: 'e3goTGwKrT',
|
|
557
|
-
type: 'paragraph',
|
|
558
|
-
data: {
|
|
559
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Future purchases become more likely.</span>',
|
|
560
|
-
},
|
|
561
|
-
},
|
|
562
|
-
{
|
|
563
|
-
id: 'yOqzBaTH7B',
|
|
564
|
-
type: 'paragraph',
|
|
565
|
-
data: {
|
|
566
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">However, running a gold scheme manually often creates challenges such as missed instalments, paperwork, and customer confusion.</span>',
|
|
567
|
-
},
|
|
568
|
-
},
|
|
569
|
-
{
|
|
570
|
-
id: '1md_1VRYTX',
|
|
571
|
-
type: 'paragraph',
|
|
572
|
-
data: {
|
|
573
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This is why many retailers are moving to digital gold scheme management.</span>',
|
|
574
|
-
},
|
|
575
|
-
},
|
|
576
|
-
{
|
|
577
|
-
id: 'JYY8zbXkxh',
|
|
578
|
-
type: 'header',
|
|
579
|
-
data: {
|
|
580
|
-
text: '2. Stop Calling Customers Manually',
|
|
581
|
-
level: 2,
|
|
582
|
-
},
|
|
583
|
-
},
|
|
584
|
-
{
|
|
585
|
-
id: 'V-dw1da3Vl',
|
|
586
|
-
type: 'paragraph',
|
|
587
|
-
data: {
|
|
588
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Imagine managing 1,200 active gold scheme members.</span>',
|
|
589
|
-
},
|
|
590
|
-
},
|
|
591
|
-
{
|
|
592
|
-
id: 'hUF1vDzoQX',
|
|
593
|
-
type: 'paragraph',
|
|
594
|
-
data: {
|
|
595
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Calling every customer every month is almost impossible.</span>',
|
|
596
|
-
},
|
|
597
|
-
},
|
|
598
|
-
{
|
|
599
|
-
id: 'icwpJONCvF',
|
|
600
|
-
type: 'paragraph',
|
|
601
|
-
data: {
|
|
602
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead, automate:</span>',
|
|
603
|
-
},
|
|
604
|
-
},
|
|
605
|
-
{
|
|
606
|
-
id: 'T_-ge3rEmM',
|
|
607
|
-
type: 'list',
|
|
608
|
-
data: {
|
|
609
|
-
style: 'unordered',
|
|
610
|
-
items: [
|
|
611
|
-
'Payment reminders',
|
|
612
|
-
'Due date alerts',
|
|
613
|
-
'Festival greetings',
|
|
614
|
-
'Gold rate updates',
|
|
615
|
-
'New collection announcements',
|
|
616
|
-
],
|
|
617
|
-
},
|
|
618
|
-
},
|
|
619
|
-
{
|
|
620
|
-
id: 'GiVE5WcouE',
|
|
621
|
-
type: 'paragraph',
|
|
622
|
-
data: {
|
|
623
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Automated WhatsApp reminders ensure customers stay informed while allowing your staff to focus on sales rather than repetitive follow-up calls.</span>',
|
|
624
|
-
},
|
|
625
|
-
},
|
|
626
|
-
{
|
|
627
|
-
id: '19I6Ja1L5B',
|
|
628
|
-
type: 'header',
|
|
629
|
-
data: {
|
|
630
|
-
text: '3. Replace Paper Passbooks with Digital Passbooks',
|
|
631
|
-
level: 2,
|
|
632
|
-
},
|
|
633
|
-
},
|
|
634
|
-
{
|
|
635
|
-
id: '1MvUvFnBBY',
|
|
636
|
-
type: 'paragraph',
|
|
637
|
-
data: {
|
|
638
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">One of the most common complaints jewellery retailers hear is:</span>',
|
|
639
|
-
},
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
id: 'LjZ9E-2MT6',
|
|
643
|
-
type: 'paragraph',
|
|
644
|
-
data: {
|
|
645
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">"I\'ve lost my passbook."</span>',
|
|
646
|
-
},
|
|
647
|
-
},
|
|
648
|
-
{
|
|
649
|
-
id: 'wkbiyMWRVq',
|
|
650
|
-
type: 'paragraph',
|
|
651
|
-
data: {
|
|
652
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Now your staff spends valuable time searching through records.</span>',
|
|
653
|
-
},
|
|
654
|
-
},
|
|
655
|
-
{
|
|
656
|
-
id: '0oFKoXyH18',
|
|
657
|
-
type: 'paragraph',
|
|
658
|
-
data: {
|
|
659
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A digital passbook eliminates this problem.</span>',
|
|
660
|
-
},
|
|
661
|
-
},
|
|
662
|
-
{
|
|
663
|
-
id: 'Ka3ilpF4J0',
|
|
664
|
-
type: 'paragraph',
|
|
665
|
-
data: {
|
|
666
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Customers can instantly view:</span>',
|
|
667
|
-
},
|
|
668
|
-
},
|
|
669
|
-
{
|
|
670
|
-
id: 'Q5qeRog7bp',
|
|
671
|
-
type: 'list',
|
|
672
|
-
data: {
|
|
673
|
-
style: 'unordered',
|
|
674
|
-
items: [
|
|
675
|
-
'Instalment history',
|
|
676
|
-
'Payment status',
|
|
677
|
-
'Remaining balance',
|
|
678
|
-
'Scheme progress',
|
|
679
|
-
],
|
|
680
|
-
},
|
|
681
|
-
},
|
|
682
|
-
{
|
|
683
|
-
id: 'L7nZOmQnSg',
|
|
684
|
-
type: 'paragraph',
|
|
685
|
-
data: {
|
|
686
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">It also builds transparency and confidence.</span>',
|
|
687
|
-
},
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
id: 'y0pj6TvTtZ',
|
|
691
|
-
type: 'header',
|
|
692
|
-
data: {
|
|
693
|
-
text: '4. Build a Customer Database, Not Just a Billing Database',
|
|
694
|
-
level: 2,
|
|
695
|
-
},
|
|
696
|
-
},
|
|
697
|
-
{
|
|
698
|
-
id: 'jj1Nls6VFv',
|
|
699
|
-
type: 'paragraph',
|
|
700
|
-
data: {
|
|
701
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Many retailers have years of invoices but very little usable customer information.</span>',
|
|
702
|
-
},
|
|
703
|
-
},
|
|
704
|
-
{
|
|
705
|
-
id: 'ze4wFv2xpu',
|
|
706
|
-
type: 'paragraph',
|
|
707
|
-
data: {
|
|
708
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A complete customer profile should include:</span>',
|
|
709
|
-
},
|
|
710
|
-
},
|
|
711
|
-
{
|
|
712
|
-
id: '_HQ-XU8xyU',
|
|
713
|
-
type: 'list',
|
|
714
|
-
data: {
|
|
715
|
-
style: 'unordered',
|
|
716
|
-
items: [
|
|
717
|
-
'Birthday',
|
|
718
|
-
'Anniversary',
|
|
719
|
-
'Purchase history',
|
|
720
|
-
'Preferred jewellery category',
|
|
721
|
-
'Gold scheme status',
|
|
722
|
-
'Visit history',
|
|
723
|
-
],
|
|
724
|
-
},
|
|
725
|
-
},
|
|
726
|
-
{
|
|
727
|
-
id: '526IaO8rZg',
|
|
728
|
-
type: 'paragraph',
|
|
729
|
-
data: {
|
|
730
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This enables personalized communication that feels relevant instead of generic.</span>',
|
|
731
|
-
},
|
|
732
|
-
},
|
|
733
|
-
{
|
|
734
|
-
id: 'HTc9WUGYbQ',
|
|
735
|
-
type: 'header',
|
|
736
|
-
data: {
|
|
737
|
-
text: '5. Make WhatsApp Your Strongest Marketing Channel',
|
|
738
|
-
level: 2,
|
|
739
|
-
},
|
|
740
|
-
},
|
|
741
|
-
{
|
|
742
|
-
id: 'd6s5rP32z8',
|
|
743
|
-
type: 'paragraph',
|
|
744
|
-
data: {
|
|
745
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Your customers already use WhatsApp every day.</span>',
|
|
746
|
-
},
|
|
747
|
-
},
|
|
748
|
-
{
|
|
749
|
-
id: 'aZzSRfbV2I',
|
|
750
|
-
type: 'paragraph',
|
|
751
|
-
data: {
|
|
752
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead of relying only on social media, communicate through the platform they check most often.</span>',
|
|
753
|
-
},
|
|
754
|
-
},
|
|
755
|
-
{
|
|
756
|
-
id: 'KeFelhxn4l',
|
|
757
|
-
type: 'paragraph',
|
|
758
|
-
data: {
|
|
759
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Examples include:</span>',
|
|
760
|
-
},
|
|
761
|
-
},
|
|
762
|
-
{
|
|
763
|
-
id: 'nnLkPLK_Gm',
|
|
764
|
-
type: 'list',
|
|
765
|
-
data: {
|
|
766
|
-
style: 'unordered',
|
|
767
|
-
items: [
|
|
768
|
-
'Monthly gold scheme reminders',
|
|
769
|
-
'Festival wishes',
|
|
770
|
-
'New arrivals',
|
|
771
|
-
'Bridal collections',
|
|
772
|
-
'Gold rate updates',
|
|
773
|
-
'Exclusive offers',
|
|
774
|
-
],
|
|
775
|
-
},
|
|
776
|
-
},
|
|
777
|
-
{
|
|
778
|
-
id: 'fogDf4PfgP',
|
|
779
|
-
type: 'paragraph',
|
|
780
|
-
data: {
|
|
781
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Consistent communication keeps your store top of mind.</span>',
|
|
782
|
-
},
|
|
783
|
-
},
|
|
784
|
-
{
|
|
785
|
-
id: 'Tf04Utqhp4',
|
|
786
|
-
type: 'header',
|
|
787
|
-
data: {
|
|
788
|
-
text: '6. Reward Loyalty, Not Just New Customers',
|
|
789
|
-
level: 2,
|
|
790
|
-
},
|
|
791
|
-
},
|
|
792
|
-
{
|
|
793
|
-
id: '8x3-lLpWuS',
|
|
794
|
-
type: 'paragraph',
|
|
795
|
-
data: {
|
|
796
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Many jewellery businesses offer discounts only to attract new buyers.</span>',
|
|
797
|
-
},
|
|
798
|
-
},
|
|
799
|
-
{
|
|
800
|
-
id: 'GW-gifTTF8',
|
|
801
|
-
type: 'paragraph',
|
|
802
|
-
data: {
|
|
803
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead, reward customers who continue choosing your brand.</span>',
|
|
804
|
-
},
|
|
805
|
-
},
|
|
806
|
-
{
|
|
807
|
-
id: '8Jk9fRWsJ3',
|
|
808
|
-
type: 'paragraph',
|
|
809
|
-
data: {
|
|
810
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Ideas include:</span>',
|
|
811
|
-
},
|
|
812
|
-
},
|
|
813
|
-
{
|
|
814
|
-
id: 'OZIeXOHvnM',
|
|
815
|
-
type: 'list',
|
|
816
|
-
data: {
|
|
817
|
-
style: 'unordered',
|
|
818
|
-
items: [
|
|
819
|
-
'Bonus gold after completing a scheme',
|
|
820
|
-
'Loyalty rewards',
|
|
821
|
-
'Referral incentives',
|
|
822
|
-
'Exclusive previews',
|
|
823
|
-
'Complimentary jewellery cleaning',
|
|
824
|
-
],
|
|
825
|
-
},
|
|
826
|
-
},
|
|
827
|
-
{
|
|
828
|
-
id: 'wWYtCpA3Wr',
|
|
829
|
-
type: 'paragraph',
|
|
830
|
-
data: {
|
|
831
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">These small gestures encourage long-term relationships.</span>',
|
|
832
|
-
},
|
|
833
|
-
},
|
|
834
|
-
{
|
|
835
|
-
id: 'ZfPjEsrvKM',
|
|
836
|
-
type: 'header',
|
|
837
|
-
data: {
|
|
838
|
-
text: "7. Recover Customers Before They're Lost",
|
|
839
|
-
level: 2,
|
|
840
|
-
},
|
|
841
|
-
},
|
|
842
|
-
{
|
|
843
|
-
id: 'CaSeL7KD8q',
|
|
844
|
-
type: 'paragraph',
|
|
845
|
-
data: {
|
|
846
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Not every inactive customer is gone forever.</span>',
|
|
847
|
-
},
|
|
848
|
-
},
|
|
849
|
-
{
|
|
850
|
-
id: '5mzmqjmKwM',
|
|
851
|
-
type: 'paragraph',
|
|
852
|
-
data: {
|
|
853
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Identify customers who haven\'t visited in the last 6–12 months and reconnect them with:</span>',
|
|
854
|
-
},
|
|
855
|
-
},
|
|
856
|
-
{
|
|
857
|
-
id: 'VeT4U-9auh',
|
|
858
|
-
type: 'list',
|
|
859
|
-
data: {
|
|
860
|
-
style: 'unordered',
|
|
861
|
-
items: [
|
|
862
|
-
'Personalized WhatsApp messages',
|
|
863
|
-
'Festival invitations',
|
|
864
|
-
'Gold scheme offers',
|
|
865
|
-
'New collection previews',
|
|
866
|
-
],
|
|
867
|
-
},
|
|
868
|
-
},
|
|
869
|
-
{
|
|
870
|
-
id: 'ru3MnsQ27U',
|
|
871
|
-
type: 'paragraph',
|
|
872
|
-
data: {
|
|
873
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Winning back an existing customer is usually easier than finding a new one.</span>',
|
|
874
|
-
},
|
|
875
|
-
},
|
|
876
|
-
{
|
|
877
|
-
id: '7gpH_wPDHs',
|
|
878
|
-
type: 'header',
|
|
879
|
-
data: {
|
|
880
|
-
text: '8. Use Technology to Stay Organized',
|
|
881
|
-
level: 2,
|
|
882
|
-
},
|
|
883
|
-
},
|
|
884
|
-
{
|
|
885
|
-
id: 'qVQurPoeJ8',
|
|
886
|
-
type: 'paragraph',
|
|
887
|
-
data: {
|
|
888
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">As your customer base grows, spreadsheets and paper registers become difficult to manage.</span>',
|
|
889
|
-
},
|
|
890
|
-
},
|
|
891
|
-
{
|
|
892
|
-
id: 'vbtKHxUnzC',
|
|
893
|
-
type: 'paragraph',
|
|
894
|
-
data: {
|
|
895
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A digital platform such as </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">PassbookApp</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> helps jewellery retailers:</span>',
|
|
896
|
-
},
|
|
897
|
-
},
|
|
898
|
-
{
|
|
899
|
-
id: 'N5QzSekQgD',
|
|
900
|
-
type: 'list',
|
|
901
|
-
data: {
|
|
902
|
-
style: 'unordered',
|
|
903
|
-
items: [
|
|
904
|
-
'Manage gold savings schemes',
|
|
905
|
-
'Track customer payments',
|
|
906
|
-
'Send automated WhatsApp reminders',
|
|
907
|
-
'Maintain digital passbooks',
|
|
908
|
-
'Build customer profiles',
|
|
909
|
-
'Monitor collections from one dashboard',
|
|
910
|
-
],
|
|
911
|
-
},
|
|
912
|
-
},
|
|
913
|
-
{
|
|
914
|
-
id: 'XWG64zeXFo',
|
|
915
|
-
type: 'paragraph',
|
|
916
|
-
data: {
|
|
917
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead of replacing your personal customer relationships, technology strengthens them by ensuring no customer is forgotten.</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">—--------------------------------------------------------------------------------------------------------------------</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Other strategies </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Launch a Gold Savings Scheme</span>',
|
|
918
|
-
},
|
|
919
|
-
},
|
|
920
|
-
{
|
|
921
|
-
id: 'kp5J8fAJY1',
|
|
922
|
-
type: 'paragraph',
|
|
923
|
-
data: {
|
|
924
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Automate WhatsApp Payment Reminders</span>',
|
|
925
|
-
},
|
|
926
|
-
},
|
|
927
|
-
{
|
|
928
|
-
id: 'nRtfEBFVVC',
|
|
929
|
-
type: 'paragraph',
|
|
930
|
-
data: {
|
|
931
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Replace Paper Passbooks with Digital Passbooks</span>',
|
|
932
|
-
},
|
|
933
|
-
},
|
|
934
|
-
{
|
|
935
|
-
id: '5vQ5XPtHMS',
|
|
936
|
-
type: 'paragraph',
|
|
937
|
-
data: {
|
|
938
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Build a Customer Database</span>',
|
|
939
|
-
},
|
|
940
|
-
},
|
|
941
|
-
{
|
|
942
|
-
id: '8_hfT_gfRB',
|
|
943
|
-
type: 'paragraph',
|
|
944
|
-
data: {
|
|
945
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Personalize Every Customer Interaction</span>',
|
|
946
|
-
},
|
|
947
|
-
},
|
|
948
|
-
{
|
|
949
|
-
id: 'WFKlteD8Kv',
|
|
950
|
-
type: 'paragraph',
|
|
951
|
-
data: {
|
|
952
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Create a Jewellery Loyalty Program</span>',
|
|
953
|
-
},
|
|
954
|
-
},
|
|
955
|
-
{
|
|
956
|
-
id: 'PVFMJpMwG4',
|
|
957
|
-
type: 'paragraph',
|
|
958
|
-
data: {
|
|
959
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Recover Inactive Customers</span>',
|
|
960
|
-
},
|
|
961
|
-
},
|
|
962
|
-
{
|
|
963
|
-
id: 'MWRSH4ARCb',
|
|
964
|
-
type: 'paragraph',
|
|
965
|
-
data: {
|
|
966
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Automate Customer Follow-ups</span>',
|
|
967
|
-
},
|
|
968
|
-
},
|
|
969
|
-
{
|
|
970
|
-
id: 'sjiKzwCrel',
|
|
971
|
-
type: 'paragraph',
|
|
972
|
-
data: {
|
|
973
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Celebrate Birthdays & Anniversaries</span>',
|
|
974
|
-
},
|
|
975
|
-
},
|
|
976
|
-
{
|
|
977
|
-
id: 'JQpBXE6dlq',
|
|
978
|
-
type: 'paragraph',
|
|
979
|
-
data: {
|
|
980
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Run Festival Marketing Campaigns</span>',
|
|
981
|
-
},
|
|
982
|
-
},
|
|
983
|
-
{
|
|
984
|
-
id: 'jg8ONHkNjf',
|
|
985
|
-
type: 'paragraph',
|
|
986
|
-
data: {
|
|
987
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Offer Referral Rewards</span>',
|
|
988
|
-
},
|
|
989
|
-
},
|
|
990
|
-
{
|
|
991
|
-
id: '81ad5L3GEn',
|
|
992
|
-
type: 'paragraph',
|
|
993
|
-
data: {
|
|
994
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Track Customer Purchase History</span>',
|
|
995
|
-
},
|
|
996
|
-
},
|
|
997
|
-
{
|
|
998
|
-
id: 'T82owhXECh',
|
|
999
|
-
type: 'paragraph',
|
|
1000
|
-
data: {
|
|
1001
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Segment Customers Based on Buying Behaviour</span>',
|
|
1002
|
-
},
|
|
1003
|
-
},
|
|
1004
|
-
{
|
|
1005
|
-
id: '3zTjcoV-Ku',
|
|
1006
|
-
type: 'paragraph',
|
|
1007
|
-
data: {
|
|
1008
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Send Gold Rate & New Collection Updates</span>',
|
|
1009
|
-
},
|
|
1010
|
-
},
|
|
1011
|
-
{
|
|
1012
|
-
id: 'PmdDZ5Jkir',
|
|
1013
|
-
type: 'paragraph',
|
|
1014
|
-
data: {
|
|
1015
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Improve In-Store Customer Experience</span>',
|
|
1016
|
-
},
|
|
1017
|
-
},
|
|
1018
|
-
{
|
|
1019
|
-
id: '139x-wirAi',
|
|
1020
|
-
type: 'paragraph',
|
|
1021
|
-
data: {
|
|
1022
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Use Jewellery CRM Software</span>',
|
|
1023
|
-
},
|
|
1024
|
-
},
|
|
1025
|
-
{
|
|
1026
|
-
id: 'VUJd-tT-Eu',
|
|
1027
|
-
type: 'paragraph',
|
|
1028
|
-
data: {
|
|
1029
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Measure Customer Retention Metrics</span>',
|
|
1030
|
-
},
|
|
1031
|
-
},
|
|
1032
|
-
{
|
|
1033
|
-
id: 'k1Oj2zBVeZ',
|
|
1034
|
-
type: 'paragraph',
|
|
1035
|
-
data: {
|
|
1036
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Collect Customer Feedback & Reviews</span>',
|
|
1037
|
-
},
|
|
1038
|
-
},
|
|
1039
|
-
{
|
|
1040
|
-
id: 'zCXobUMJOb',
|
|
1041
|
-
type: 'paragraph',
|
|
1042
|
-
data: {
|
|
1043
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Analyze Customer Buying Trends</span>',
|
|
1044
|
-
},
|
|
1045
|
-
},
|
|
1046
|
-
{
|
|
1047
|
-
id: 'SaDYv1p6sg',
|
|
1048
|
-
type: 'paragraph',
|
|
1049
|
-
data: {
|
|
1050
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Digitize Your Jewellery Business with PassbookApp</span>',
|
|
1051
|
-
},
|
|
1052
|
-
},
|
|
1053
|
-
{
|
|
1054
|
-
id: 'itszx-eghp',
|
|
1055
|
-
type: 'header',
|
|
1056
|
-
data: {
|
|
1057
|
-
text: 'Final Thoughts',
|
|
1058
|
-
level: 1,
|
|
1059
|
-
},
|
|
1060
|
-
},
|
|
1061
|
-
{
|
|
1062
|
-
id: 'DWZ9Y5DpTi',
|
|
1063
|
-
type: 'paragraph',
|
|
1064
|
-
data: {
|
|
1065
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The future of jewellery retail belongs to businesses that focus not only on acquiring customers but also on retaining them.</span>',
|
|
1066
|
-
},
|
|
1067
|
-
},
|
|
1068
|
-
{
|
|
1069
|
-
id: 'sh__WfsKsR',
|
|
1070
|
-
type: 'paragraph',
|
|
1071
|
-
data: {
|
|
1072
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Every missed follow-up, forgotten anniversary, or delayed reminder is a missed opportunity to strengthen a customer relationship.</span>',
|
|
1073
|
-
},
|
|
1074
|
-
},
|
|
1075
|
-
{
|
|
1076
|
-
id: '-yIVi7hG1p',
|
|
1077
|
-
type: 'paragraph',
|
|
1078
|
-
data: {
|
|
1079
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">By implementing structured customer retention strategies—such as gold savings schemes, automated reminders, personalized engagement, and digital customer management—you can increase repeat purchases, improve loyalty, and create a more predictable stream of recurring business.</span>',
|
|
1080
|
-
},
|
|
1081
|
-
},
|
|
1082
|
-
{
|
|
1083
|
-
id: 'fqIBVidohQ',
|
|
1084
|
-
type: 'paragraph',
|
|
1085
|
-
data: {
|
|
1086
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">PassbookApp is designed to support this journey by helping jewellery retailers digitize customer management, automate gold scheme operations, and deliver a modern experience that keeps customers coming back.</span>',
|
|
1087
|
-
},
|
|
1088
|
-
},
|
|
1089
|
-
{
|
|
1090
|
-
id: 'ijRpOnUsO4',
|
|
1091
|
-
type: 'header',
|
|
1092
|
-
data: {
|
|
1093
|
-
text: 'Frequently Asked Questions',
|
|
1094
|
-
level: 2,
|
|
1095
|
-
},
|
|
1096
|
-
},
|
|
1097
|
-
{
|
|
1098
|
-
id: 'IBJcODGBFG',
|
|
1099
|
-
type: 'paragraph',
|
|
1100
|
-
data: {
|
|
1101
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">How can a jewellery store increase repeat customers?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> Focus on customer retention through gold savings schemes, personalized communication, WhatsApp reminders, loyalty programs, and regular engagement.</span>',
|
|
1102
|
-
},
|
|
1103
|
-
},
|
|
1104
|
-
{
|
|
1105
|
-
id: 'Hw_lhi15c5',
|
|
1106
|
-
type: 'paragraph',
|
|
1107
|
-
data: {
|
|
1108
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Why do customers stop visiting jewellery stores?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> The most common reasons are lack of follow-up, poor engagement, and competitors maintaining stronger communication.</span>',
|
|
1109
|
-
},
|
|
1110
|
-
},
|
|
1111
|
-
{
|
|
1112
|
-
id: 'ADBXyeKS4e',
|
|
1113
|
-
type: 'paragraph',
|
|
1114
|
-
data: {
|
|
1115
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">What is the best software for managing jewellery customers?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> A platform that combines customer records, digital passbooks, gold scheme management, payment tracking, and automated reminders can simplify operations and improve retention.</span>',
|
|
1116
|
-
},
|
|
1117
|
-
},
|
|
1118
|
-
{
|
|
1119
|
-
id: 'E4QcS9ieOL',
|
|
1120
|
-
type: 'paragraph',
|
|
1121
|
-
data: {
|
|
1122
|
-
text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Do gold savings schemes help customer loyalty?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> Yes. They encourage regular monthly interaction, improve retention, and increase the likelihood of future purchases.</span>',
|
|
1123
|
-
},
|
|
1124
|
-
},
|
|
1125
|
-
{
|
|
1126
|
-
id: 'dvXEFf_A4B',
|
|
1127
|
-
type: 'header',
|
|
1128
|
-
data: {
|
|
1129
|
-
text: '<a href="https://www.passbookapp.in/demo">Book a Free Demo</a>',
|
|
1130
|
-
level: 2,
|
|
1131
|
-
},
|
|
1132
|
-
},
|
|
305
|
+
"id": "r5kCFO503W",
|
|
306
|
+
"type": "paragraph",
|
|
307
|
+
"data": {
|
|
308
|
+
"text": "<b><a href=\"https://www.passbookapp.in/demo\">Book a Free PassbookApp Demo Today</a></b>"
|
|
309
|
+
}
|
|
310
|
+
}
|
|
1133
311
|
],
|
|
1134
|
-
createdBy:
|
|
1135
|
-
postSummary:
|
|
1136
|
-
postTitle:
|
|
1137
|
-
newPostTitle:
|
|
1138
|
-
blogMeta: {
|
|
1139
|
-
metaTitle:
|
|
1140
|
-
metaDescription: {
|
|
1141
|
-
name:
|
|
1142
|
-
content:
|
|
1143
|
-
}
|
|
312
|
+
"createdBy": "Raj",
|
|
313
|
+
"postSummary": "Discover how Jewellery retailers eliminated manual registers, increased customer engagement, and streamlined savings schemes using PassbookApp.",
|
|
314
|
+
"postTitle": "Case Study: How a Jewellery Retailer Increased Customer Engagement Using PassbookApp",
|
|
315
|
+
"newPostTitle": "Case-Study-How-a-Jewellery-Retailer-Increased--Customer-Engagement-Using-PassbookApp",
|
|
316
|
+
"blogMeta": {
|
|
317
|
+
"metaTitle": "Case Study: How a Jewellery Retailer Increased Customer Engagement Using PassbookApp",
|
|
318
|
+
"metaDescription": {
|
|
319
|
+
"name": "description",
|
|
320
|
+
"content": "Discover how Jewellery retailers eliminated manual registers, increased customer engagement, and streamlined savings schemes using PassbookApp."
|
|
321
|
+
}
|
|
1144
322
|
},
|
|
1145
|
-
createdTimeStamp:
|
|
1146
|
-
publishedDate: null,
|
|
1147
|
-
blogScheduledDate:
|
|
1148
|
-
blogScheduleTime:
|
|
1149
|
-
keyWords: {
|
|
1150
|
-
name:
|
|
1151
|
-
content:
|
|
323
|
+
"createdTimeStamp": "2026-08-04T11:58:37.000+00:00",
|
|
324
|
+
"publishedDate": null,
|
|
325
|
+
"blogScheduledDate": "2026-08-04T00:00:00.000+00:00",
|
|
326
|
+
"blogScheduleTime": "17:29:24",
|
|
327
|
+
"keyWords": {
|
|
328
|
+
"name": "keywords",
|
|
329
|
+
"content": "digital passbook for jewellery stores,Jewellery customer engagement,jewellery customer engagement software,jewellery CRM software,jewellery customer experience"
|
|
1152
330
|
},
|
|
1153
|
-
author: {
|
|
1154
|
-
name:
|
|
1155
|
-
content:
|
|
331
|
+
"author": {
|
|
332
|
+
"name": "author",
|
|
333
|
+
"content": "Passbookapp"
|
|
1156
334
|
},
|
|
1157
|
-
blogStatus:
|
|
1158
|
-
blogType:
|
|
335
|
+
"blogStatus": "PUBLISH",
|
|
336
|
+
"blogType": "BUSINESS"
|
|
1159
337
|
};
|
|
1160
338
|
this.tocItems = [];
|
|
1161
339
|
this.tocOpen = false;
|
|
@@ -1165,18 +343,54 @@ export class ViewBlogComponent {
|
|
|
1165
343
|
}
|
|
1166
344
|
ngOnInit() {
|
|
1167
345
|
this.buildTableOfContents();
|
|
346
|
+
this.recordVisit();
|
|
1168
347
|
}
|
|
1169
348
|
ngOnChanges(changes) {
|
|
1170
349
|
if (changes['responseData'] && !changes['responseData'].isFirstChange()) {
|
|
1171
350
|
this.buildTableOfContents();
|
|
351
|
+
this.recordVisit();
|
|
1172
352
|
}
|
|
1173
353
|
}
|
|
354
|
+
// Counts one public view per blog per browser session, per the "Increment blog visits" spec:
|
|
355
|
+
// PUT business/blog/update/{blogId}, fire-and-forget, guarded so refresh/re-render doesn't double-count.
|
|
356
|
+
recordVisit() {
|
|
357
|
+
if (!this.isBrowser) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
const blogId = this.responseData?.id;
|
|
361
|
+
if (!blogId) {
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
const sessionKey = `blog-visit-${blogId}`;
|
|
365
|
+
if (sessionStorage.getItem(sessionKey)) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
sessionStorage.setItem(sessionKey, '1');
|
|
369
|
+
this.restService.incrementBlogVisit(blogId).subscribe({
|
|
370
|
+
next: () => { },
|
|
371
|
+
error: () => { },
|
|
372
|
+
});
|
|
373
|
+
}
|
|
1174
374
|
ngAfterViewInit() {
|
|
1175
375
|
this.setupScrollSpy();
|
|
1176
376
|
}
|
|
1177
377
|
ngOnDestroy() {
|
|
1178
378
|
this.tocObserver?.disconnect();
|
|
1179
379
|
}
|
|
380
|
+
get heroImageBlockId() {
|
|
381
|
+
const blocks = this.responseData?.blocks || [];
|
|
382
|
+
return blocks.find(block => block.type === 'image')?.id ?? null;
|
|
383
|
+
}
|
|
384
|
+
get tags() {
|
|
385
|
+
const content = this.responseData?.keyWords?.content;
|
|
386
|
+
if (!content) {
|
|
387
|
+
return [];
|
|
388
|
+
}
|
|
389
|
+
return content
|
|
390
|
+
.split(',')
|
|
391
|
+
.map((tag) => tag.trim())
|
|
392
|
+
.filter((tag) => tag.length > 0);
|
|
393
|
+
}
|
|
1180
394
|
editSection() {
|
|
1181
395
|
// this._eventService.toggleEditorEvent.emit(false);
|
|
1182
396
|
}
|
|
@@ -1218,7 +432,7 @@ export class ViewBlogComponent {
|
|
|
1218
432
|
if (level <= 1 || !text) {
|
|
1219
433
|
return null;
|
|
1220
434
|
}
|
|
1221
|
-
return { id: block.id, text };
|
|
435
|
+
return { id: block.id, text, level };
|
|
1222
436
|
}
|
|
1223
437
|
if (block.type === 'paragraph') {
|
|
1224
438
|
return this.getBoldParagraphHeading(block);
|
|
@@ -1259,7 +473,7 @@ export class ViewBlogComponent {
|
|
|
1259
473
|
if (maxFontSizePt >= 16) {
|
|
1260
474
|
return null;
|
|
1261
475
|
}
|
|
1262
|
-
return { id: block.id, text };
|
|
476
|
+
return { id: block.id, text, level: 2 };
|
|
1263
477
|
}
|
|
1264
478
|
stripHtml(html) {
|
|
1265
479
|
if (!html) {
|
|
@@ -1288,16 +502,16 @@ export class ViewBlogComponent {
|
|
|
1288
502
|
}, { rootMargin: '0px 0px -70% 0px' });
|
|
1289
503
|
anchors.forEach(anchor => this.tocObserver?.observe(anchor));
|
|
1290
504
|
}
|
|
1291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewBlogComponent, deps: [{ token: i1.EventsService }, { token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ViewBlogComponent, isStandalone: true, selector: "simpo-view-blog", inputs: { responseData: "responseData" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div *ngIf=\"item.type == 'image'\" class=\"image-container\">\n <img\n loading=\"lazy\"\n [src]=\"item.data.file.url\"\n alt=\"\"\n loading=\"lazy\" />\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:10px 0}.image-container img{width:100%}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] }); }
|
|
505
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewBlogComponent, deps: [{ token: i1.EventsService }, { token: i2.RestService }, { token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
506
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ViewBlogComponent, isStandalone: true, selector: "simpo-view-blog", inputs: { responseData: "responseData" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"tags-row\" *ngIf=\"tags.length\">\n <span class=\"tag-chip\" *ngFor=\"let tag of tags\">{{ tag | titlecase }}</span>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.toc-top]=\"toc.level <= 2\"\n [style.paddingLeft.px]=\"(toc.level - 2) * 14\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div\n *ngIf=\"item.type == 'image'\"\n class=\"image-container\"\n [class.hero-image]=\"item.id === heroImageBlockId\">\n <img loading=\"lazy\" [src]=\"item.data.file.url\" alt=\"\" />\n <span class=\"image-caption\" *ngIf=\"item.data?.caption\">{{\n item.data.caption\n }}</span>\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <simpo-recent-blog-post-section\n [popular]=\"true\"\n [businessId]=\"responseData?.businessId\"\n [excludeBlogId]=\"responseData?.id\"\n [edit]=\"false\">\n </simpo-recent-blog-post-section>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.toc-link.toc-top{font-weight:700;color:#1a1a1a}.tags-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.tag-chip{background-color:#f5f5f5;border:1px solid #ececec;border-radius:999px;padding:6px 14px;font-size:.82em;color:#4a4a4a}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.table-wrapper img{max-width:100%;height:auto;display:block;border-radius:4px}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:16px 0}.image-container img{width:100%;display:block;border-radius:8px;object-fit:cover}.image-container:not(.hero-image) img{aspect-ratio:16 / 9}.image-container.hero-image{margin:0 0 24px}.image-container.hero-image img{aspect-ratio:21 / 9;border-radius:12px}.image-caption{display:block;text-align:center;font-size:.85em;color:#8a8a8a;margin-top:8px}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "component", type: RecentBlogPostSectionComponent, selector: "simpo-recent-blog-post-section", inputs: ["data", "index", "edit", "delete", "customClass", "nextComponentColor", "responseData", "popular", "businessId", "excludeBlogId", "size"] }] }); }
|
|
1293
507
|
}
|
|
1294
508
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewBlogComponent, decorators: [{
|
|
1295
509
|
type: Component,
|
|
1296
|
-
args: [{ selector: 'simpo-view-blog', standalone: true, imports: [CommonModule, DatePipe], template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div *ngIf=\"item.type == 'image'\" class=\"image-container\">\n <img\n loading=\"lazy\"\n [src]=\"item.data.file.url\"\n alt=\"\"\n loading=\"lazy\" />\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:10px 0}.image-container img{width:100%}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"] }]
|
|
1297
|
-
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
510
|
+
args: [{ selector: 'simpo-view-blog', standalone: true, imports: [CommonModule, DatePipe, RecentBlogPostSectionComponent], template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"tags-row\" *ngIf=\"tags.length\">\n <span class=\"tag-chip\" *ngFor=\"let tag of tags\">{{ tag | titlecase }}</span>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.toc-top]=\"toc.level <= 2\"\n [style.paddingLeft.px]=\"(toc.level - 2) * 14\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div\n *ngIf=\"item.type == 'image'\"\n class=\"image-container\"\n [class.hero-image]=\"item.id === heroImageBlockId\">\n <img loading=\"lazy\" [src]=\"item.data.file.url\" alt=\"\" />\n <span class=\"image-caption\" *ngIf=\"item.data?.caption\">{{\n item.data.caption\n }}</span>\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <simpo-recent-blog-post-section\n [popular]=\"true\"\n [businessId]=\"responseData?.businessId\"\n [excludeBlogId]=\"responseData?.id\"\n [edit]=\"false\">\n </simpo-recent-blog-post-section>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.toc-link.toc-top{font-weight:700;color:#1a1a1a}.tags-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.tag-chip{background-color:#f5f5f5;border:1px solid #ececec;border-radius:999px;padding:6px 14px;font-size:.82em;color:#4a4a4a}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.table-wrapper img{max-width:100%;height:auto;display:block;border-radius:4px}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:16px 0}.image-container img{width:100%;display:block;border-radius:8px;object-fit:cover}.image-container:not(.hero-image) img{aspect-ratio:16 / 9}.image-container.hero-image{margin:0 0 24px}.image-container.hero-image img{aspect-ratio:21 / 9;border-radius:12px}.image-caption{display:block;text-align:center;font-size:.85em;color:#8a8a8a;margin-top:8px}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"] }]
|
|
511
|
+
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.RestService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
1298
512
|
type: Inject,
|
|
1299
513
|
args: [PLATFORM_ID]
|
|
1300
514
|
}] }], propDecorators: { responseData: [{
|
|
1301
515
|
type: Input
|
|
1302
516
|
}] } });
|
|
1303
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1ibG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlldy1ibG9nL3ZpZXctYmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZXctYmxvZy92aWV3LWJsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDOzs7O0FBcUJ2QixNQUFNLE9BQU8saUJBQWlCO0lBNm9DNUIsWUFDbUIsYUFBNEIsRUFDNUIsV0FBb0MsRUFDaEMsVUFBa0I7UUFGdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBNW9DOUMsaUJBQVksR0FBUTtZQUMzQixhQUFhLEVBQUUsSUFBSTtZQUNuQixlQUFlLEVBQUUsRUFBRTtZQUNuQixTQUFTLEVBQUUsUUFBUTtZQUNuQixXQUFXLEVBQUUsdURBQXVEO1lBQ3BFLGdCQUFnQixFQUFFLCtCQUErQjtZQUNqRCxRQUFRLEVBQUUsR0FBRztZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLENBQUM7WUFDZCxFQUFFLEVBQUUsc0NBQXNDO1lBQzFDLFVBQVUsRUFBRSxzQ0FBc0M7WUFDbEQsSUFBSSxFQUFFLENBQUM7WUFDUCxPQUFPLEVBQUUsRUFBRTtZQUNYLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxFQUFFLEVBQUUsWUFBWTtvQkFDaEIsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFO3dCQUNKLElB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SUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FDekMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUNuQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0E3eUNVLGlCQUFpQix5RUFncENsQixXQUFXO21HQWhwQ1YsaUJBQWlCLDBJQ2pDOUIsd3ZKQXlIQSw2NkhENUZZLFlBQVk7OzRGQUlYLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDOzswQkFvcEM5QixNQUFNOzJCQUFDLFdBQVc7eUNBN29DWixZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBQTEFURk9STV9JRCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5cbmludGVyZmFjZSBUb2NJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQmxvZ0Jsb2NrIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXZpZXctYmxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctYmxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi92aWV3LWJsb2cuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdCbG9nQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSByZXNwb25zZURhdGE6IGFueSA9IHtcbiAgICBzdWJJbmR1c3RyeUlkOiBudWxsLFxuICAgIHN1YkluZHVzdHJ5TmFtZTogJycsXG4gICAgZGlzcGxheUlkOiAnQkcxNzc4JyxcbiAgICBhcnRpY2xlU2x1ZzogJ0hvdy10by1JbmNyZWFzZS1SZXBlYXQtQ3VzdG9tZXJzLWluLWEtSmV3ZWxsZXJ5LVN0b3JlJyxcbiAgICB1cGRhdGVkVGltZVN0YW1wOiAnMjAyNi0wNy0yMlQxMjoxMDoyMC4wMDArMDA6MDAnLFxuICAgIHJlYWRUaW1lOiAnNicsXG4gICAgd29yZENvdW50OiAxMjU2LFxuICAgIHRvdGFsVmlzaXRzOiAwLFxuICAgIGlkOiAnMWYxODVjNjItODk4ZC02N2M3LWEzNzctYzNlOWMyZTRmNTM2JyxcbiAgICBidXNpbmVzc0lkOiAnMWVmOTQ0ZGItMGUzNy02ZjAxLTk0M2EtMjE0ZGQxOWY1NGU5JyxcbiAgICB0aW1lOiAwLFxuICAgIHZlcnNpb246ICcnLFxuICAgIGJsb2NrczogW1xuICAgICAge1xuICAgICAgICBpZDogJ0p5REtBYml1ODEnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICdIb3cgdG8gSW5jcmVhc2UgUmVwZWF0IEN1c3RvbWVycyBpbiBhIEpld2VsbGVyeSBTdG9yZTombmJzcDsgUHJvdmVuIFN0cmF0ZWdpZXMgdG8gQm9vc3QgQ3VzdG9tZXIgTG95YWx0eSAmYW1wOyBTYWxlcycsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3ZrY05PWDl0TEYnLFxuICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgY2FwdGlvbjogJycsXG4gICAgICAgICAgd2l0aEJvcmRlcjogZmFsc2UsXG4gICAgICAgICAgd2l0aEJhY2tncm91bmQ6IGZhbHNlLFxuICAgICAgICAgIHN0cmV0Y2hlZDogZmFsc2UsXG4gICAgICAgICAgZmlsZToge1xuICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9pbWFnZXMvODU5ODAwYzE3ODQ3MjE0MTA5ODkxLnBuZycsXG4gICAgICAgICAgICBoZWlnaHQ6ICc1MDBweCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAncWQwVVFJRDBWSicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjE3cHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkltYWdpbmUgVGhpc+KApjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd1UE5HQVkxY0I5JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+WW91IHNwZW50IDwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj7igrkxNSwwMDAgb24gTWV0YSBBZHM8L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+LCBwcmludGVkIHRob3VzYW5kcyBvZiBwYW1waGxldHMgZm9yIGEgZmVzdGl2ZSBvZmZlciwgYW5kIGV2ZW4gcmFuIGEgbG9jYWwgbmV3c3BhcGVyIGFkdmVydGlzZW1lbnQuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2JEelh0d3lISDknLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5DdXN0b21lcnMgd2Fsa2VkIGludG8geW91ciBqZXdlbGxlcnkgc2hvd3Jvb20uIFNhbGVzIHdlcmUgZ29vZCBkdXJpbmcgQWtzaGF5YSBUcml0aXlhLCBEaXdhbGksIGFuZCB0aGUgd2VkZGluZyBzZWFzb24uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2R1bW15VGFibGVEZW1vMScsXG4gICAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB3aXRoSGVhZGluZ3M6IHRydWUsXG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAgWydMb3lhbHR5IFRpZXInLCAnTWluLiBQdXJjaGFzZScsICdSZXdhcmQnLCAnVmFsaWRpdHknXSxcbiAgICAgICAgICAgIFsnU2lsdmVyJywgJ+KCuTI1LDAwMCcsICcyJSBjYXNoYmFjaycsICcxMiBtb250aHMnXSxcbiAgICAgICAgICAgIFsnR29sZCcsICfigrk3NSwwMDAnLCAnNSUgY2FzaGJhY2snLCAnMTIgbW9udGhzJ10sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICdQbGF0aW51bScsXG4gICAgICAgICAgICAgICfigrkxLDUwLDAwMCcsXG4gICAgICAgICAgICAgICc4JSBjYXNoYmFjayArIGZyZWUgbWFpbnRlbmFuY2UnLFxuICAgICAgICAgICAgICAnMjQgbW9udGhzJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZHVtbXlUYWJsZURlbW8yJyxcbiAgICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHdpdGhIZWFkaW5nczogZmFsc2UsXG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAgWydGZXN0aXZlIFNlYXNvbicsICdBa3NoYXlhIFRyaXRpeWEsIERpd2FsaSwgd2VkZGluZyBzZWFzb24nXSxcbiAgICAgICAgICAgIFsnQXZnLiBSZXBlYXQgUHVyY2hhc2UgR2FwJywgJzgtMTAgbW9udGhzJ10sXG4gICAgICAgICAgICBbJ1ByZWZlcnJlZCBDb250YWN0IENoYW5uZWwnLCAnV2hhdHNBcHAnXSxcbiAgICAgICAgICAgIFsnVG9wIFJlYXNvbiBGb3IgUmV0dXJuIFZpc2l0JywgJ1JlZmVycmFsIHJld2FyZHMnXSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdkdW1teVRhYmxlRGVtbzMnLFxuICAgICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgd2l0aEhlYWRpbmdzOiB0cnVlLFxuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgJ01vbnRoJyxcbiAgICAgICAgICAgICAgJ05ldyBDdXN0b21lcnMnLFxuICAgICAgICAgICAgICAnUmVwZWF0IEN1c3RvbWVycycsXG4gICAgICAgICAgICAgICdXaGF0c0FwcCBSZW1pbmRlcnMgU2VudCcsXG4gICAgICAgICAgICAgICdSZWRlbXB0aW9ucycsXG4gICAgICAgICAgICAgICdSZXZlbnVlIGZyb20gUmVwZWF0cycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgWydBcHJpbCcsICcxMjAnLCAnNDUnLCAnMzAwJywgJzYwJywgJ+KCuTQsMjAsMDAwJ10sXG4gICAgICAgICAgICBbJ01heScsICc5OCcsICc2MicsICczNDAnLCAnNzgnLCAn4oK5NSwxMCwwMDAnXSxcbiAgICAgICAgICAgIFsnSnVuZScsICcxNDUnLCAnODAnLCAnNDEwJywgJzk1JywgJ+KCuTYsMzUsMDAwJ10sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZmFkb1dlMUdCYycsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkJ1dCBhZnRlciBzaXggbW9udGhzLCBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZC48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnTDM2N2pDaW5jZCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSBzYW1lIGN1c3RvbWVycyB3aG8gb25jZSBwcmFpc2VkIHlvdXIgc2VydmljZSBib3VnaHQgdGhlaXIgbmV4dCBqZXdlbGxlcnkgcHVyY2hhc2UgZnJvbSBhbm90aGVyIHN0b3JlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdka0xzbVN1MmxZJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm90IGJlY2F1c2UgeW91ciBqZXdlbGxlcnkgd2FzIGV4cGVuc2l2ZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnREFkcThHdFBiUicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk5vdCBiZWNhdXNlIHlvdXIgZGVzaWducyB3ZXJlIG91dGRhdGVkLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc5cHFvZnJiT1cwJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QnV0IGJlY2F1c2UgPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPnRoZXkgc2ltcGx5IGZvcmdvdCBhYm91dCB5b3VyIGJ1c2luZXNzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdJRTlBLXVCV0JnJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhpcyBpcyBvbmUgb2YgdGhlIGJpZ2dlc3QgY2hhbGxlbmdlcyBqZXdlbGxlcnkgcmV0YWlsZXJzIGZhY2UgdG9kYXkuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ01GM0s0UDU0RkUnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Nb3N0IGpld2VsbGVyeSBvd25lcnMgc3BlbmQgdGhvdXNhbmRzIG9mIHJ1cGVlcyBhdHRyYWN0aW5nIG5ldyBjdXN0b21lcnMgd2hpbGUgdW5pbnRlbnRpb25hbGx5IG5lZ2xlY3RpbmcgdGhlIGN1c3RvbWVycyB3aG8gaGF2ZSBhbHJlYWR5IHRydXN0ZWQgdGhlbS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnc19OYTBwc3htSCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSByZXN1bHQ/PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0ZlS3lRbXBnWHInLFxuICAgICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBzdHlsZTogJ3Vub3JkZXJlZCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICdDdXN0b21lcnMgcHVyY2hhc2Ugb25jZSBhbmQgbmV2ZXIgcmV0dXJuLicsXG4gICAgICAgICAgICAnR29sZCBzY2hlbWUgbWVtYmVycyBzdG9wIHBheWluZyBtb250aGx5IGluc3RhbG1lbnRzLicsXG4gICAgICAgICAgICAnU3RhZmYgc3BlbmQgaG91cnMgbWFraW5nIHJlbWluZGVyIGNhbGxzLicsXG4gICAgICAgICAgICAnQ3VzdG9tZXIgcmVjb3JkcyByZW1haW4gaW4gcGFwZXIgZmlsZXMgb3IgRXhjZWwgc2hlZXRzLicsXG4gICAgICAgICAgICAnRmVzdGl2YWwgY2FtcGFpZ25zIHJlYWNoIG9ubHkgYSBmcmFjdGlvbiBvZiBwYXN0IGJ1eWVycy4nLFxuICAgICAgICAgICAgJ0NvbXBldGl0b3JzIHJlY29ubmVjdCB3aXRoIHlvdXIgY3VzdG9tZXJzIGJlZm9yZSB5b3UgZG8uJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd6Vk9SalQ4RE91JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SWYgdGhpcyBzb3VuZHMgZmFtaWxpYXIsIHlvdVxcJ3JlIG5vdCBhbG9uZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnb0hCZXEzY0RqSCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSBnb29kIG5ld3MgaXMgdGhhdCBpbmNyZWFzaW5nIHJlcGVhdCBjdXN0b21lcnMgZG9lc25cXCd0IGFsd2F5cyByZXF1aXJlIGEgYmlnZ2VyIG1hcmtldGluZyBidWRnZXQuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3hiaFlDcHRacE0nLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PZnRlbiwgaXQgcmVxdWlyZXMgYSBiZXR0ZXIgY3VzdG9tZXIgcmV0ZW50aW9uIHN0cmF0ZWd5Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4alRmN0cyekxkJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SW4gdGhpcyBndWlkZSwgd2VcXCdsbCBleHBsb3JlIHByYWN0aWNhbCBzdHJhdGVnaWVzIHRoYXQgbGVhZGluZyBqZXdlbGxlcnkgcmV0YWlsZXJzIHVzZSB0byBpbmNyZWFzZSBjdXN0b21lciBsb3lhbHR5LCBpbXByb3ZlIGdvbGQgc2NoZW1lIGNvbGxlY3Rpb25zLCBhbmQgYnVpbGQgYSBidXNpbmVzcyB3aGVyZSBjdXN0b21lcnMga2VlcCBjb21pbmcgYmFjayB5ZWFyIGFmdGVyIHllYXIuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3VOVVhWVjJIQUYnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICdXaHkgUmVwZWF0IEN1c3RvbWVycyBNYXR0ZXIgTW9yZSBUaGFuIE5ldyBDdXN0b21lcnMnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdBcmFpRkNnbzFJJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RXZlcnkgamV3ZWxsZXJ5IHJldGFpbGVyIGRyZWFtcyBvZiBhdHRyYWN0aW5nIG5ldyBjdXN0b21lcnMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzExREh6WE5OUlQnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5CdXQgdGhlIG1vc3QgcHJvZml0YWJsZSBzdG9yZXMga25vdyBhIHNpbXBsZSB0cnV0aDo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzBBMEd4TkhTNycsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSBlYXNpZXN0IGN1c3RvbWVyIHRvIHNlbGwgdG8gaXMgc29tZW9uZSB3aG8gaGFzIGFscmVhZHkgYm91Z2h0IGZyb20geW91Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdLYWptTk9zcm1zJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhpbmsgYWJvdXQgYSB0eXBpY2FsIGpld2VsbGVyeSBjdXN0b21lci48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnWElQSms4b0dkNScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkEgcGVyc29uIGJ1eWluZyBhbiBlbmdhZ2VtZW50IHJpbmcgdG9kYXkgbWlnaHQgbGF0ZXIgcHVyY2hhc2U6PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzZ1ZGM0X2xoY3gnLFxuICAgICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBzdHlsZTogJ3Vub3JkZXJlZCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICdXZWRkaW5nIGpld2VsbGVyeScsXG4gICAgICAgICAgICAnQW5uaXZlcnNhcnkgZ2lmdHMnLFxuICAgICAgICAgICAgJ0JhYnkgc2hvd2VyIGpld2VsbGVyeScsXG4gICAgICAgICAgICAnRmVzdGl2YWwgY29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgJ0dvbGQgY29pbnMnLFxuICAgICAgICAgICAgJ01vbnRobHkgZ29sZCBzYXZpbmdzIHNjaGVtZXMnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzVLanpySTJVbkgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PdmVyIGEgbGlmZXRpbWUsIG9uZSBjdXN0b21lciBjYW4gZ2VuZXJhdGUgbXVsdGlwbGUgcHVyY2hhc2VzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICczWHpad1U1Vzd6JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhlIGNoYWxsZW5nZSBpcyBzdGF5aW5nIGNvbm5lY3RlZCBiZXR3ZWVuIHRob3NlIG9jY2FzaW9ucy48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnQWRtbnNWOWNUbCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlVuZm9ydHVuYXRlbHksIG1hbnkgamV3ZWxsZXJ5IHN0b3JlcyBsb3NlIHRvdWNoIGFmdGVyIHRoZSBmaXJzdCBzYWxlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdQRURHbmpUZ2ZWJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gZm9sbG93LXVwLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdFMW4wRUdMU2NRJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gcmVtaW5kZXJzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc5bXFRbHVfbTk0JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gcGVyc29uYWxpemVkIGNvbW11bmljYXRpb24uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2ZhUVVNb3prOEUnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5ObyBsb3lhbHR5IHByb2dyYW0uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzk1RkxIMlo1ZkgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5FdmVudHVhbGx5LCB0aGUgY3VzdG9tZXIgd2Fsa3MgaW50byBhbm90aGVyIGpld2VsbGVyeSBzdG9yZeKAlG5vdCBiZWNhdXNlIHRoZXlcXCdyZSB1bmhhcHB5LCBidXQgYmVjYXVzZSB0aGUgY29tcGV0aXRvciBzdGF5ZWQgdmlzaWJsZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAncUhEZkxvNGJQQScsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJ1RoZSBCaWdnZXN0IEN1c3RvbWVyIFJldGVudGlvbiBQcm9ibGVtcyBKZXdlbGxlcnkgU3RvcmVzIEZhY2UnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc1VkRtN3NVSnRlJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QWZ0ZXIgc3BlYWtpbmcgd2l0aCBqZXdlbGxlcnkgcmV0YWlsZXJzIGFjcm9zcyBJbmRpYSwgdGhlIHNhbWUgY2hhbGxlbmdlcyBhcHBlYXIgcmVwZWF0ZWRseS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZWUxYXZ1clZocCcsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzEuIEN1c3RvbWVycyBGb3JnZXQgQWJvdXQgdGhlIFN0b3JlJyxcbiAgICAgICAgICBsZXZlbDogMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnTVhwSkdWY0l1MScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk1vc3QgY3VzdG9tZXJzIGJ1eSBqZXdlbGxlcnkgb25seSBhIGZldyB0aW1lcyBhIHllYXIuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1dkNlRiTThraVAnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5XaXRob3V0IHJlZ3VsYXIgY29tbXVuaWNhdGlvbiwgdGhleSBmb3JnZXQgd2hlcmUgdGhleSBwdXJjaGFzZWQgbGFzdC48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZ1ZrdGZTU2NQQicsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzIuIEdvbGQgU2NoZW1lIEN1c3RvbWVycyBNaXNzIEluc3RhbGxtZW50cycsXG4gICAgICAgICAgbGV2ZWw6IDMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3BmRXJzNTZZSWEnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Nb250aGx5IGdvbGQgc2F2aW5ncyBzY2hlbWVzIGFyZSBleGNlbGxlbnQgZm9yIGN1c3RvbWVyIHJldGVudGlvbi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnc0FUYzByYjkteCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkhvd2V2ZXIsIG1hbnkgY3VzdG9tZXJzIG1pc3MgaW5zdGFsbWVudHMgc2ltcGx5IGJlY2F1c2UgdGhleSBmb3JnZXQgdGhlIGR1ZSBkYXRlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdSV05UMXRRX09WJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+U3RhZmYgdGhlbiBzcGVuZCBob3VycyBtYWtpbmcgcmVtaW5kZXIgY2FsbHMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJy1zOU1aaFFObWcnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICczLiBFdmVyeXRoaW5nIElzIE1hbmFnZWQgTWFudWFsbHknLFxuICAgICAgICAgIGxldmVsOiAzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICctRFd5OHZVMjVfJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+TWFueSByZXRhaWxlcnMgc3RpbGwgZGVwZW5kIG9uOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdQUVRPSTZweTVUJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnUGFwZXIgcGFzc2Jvb2tzJyxcbiAgICAgICAgICAgICdFeGNlbCBzaGVldHMnLFxuICAgICAgICAgICAgJ1JlZ2lzdGVycycsXG4gICAgICAgICAgICAnTWFudWFsIGNhbGN1bGF0aW9ucycsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnQjdoZGxsM0N2ZCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoaXMgaW5jcmVhc2VzIGVycm9ycyBhbmQgY29uc3VtZXMgdmFsdWFibGUgc3RhZmYgdGltZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnN1NJTmtScG1KWicsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzQuIE5vIEN1c3RvbWVyIERhdGFiYXNlJyxcbiAgICAgICAgICBsZXZlbDogMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnX2Q0REdoSUtEcCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk1hbnkgc3RvcmVzIGhhdmUgdGhvdXNhbmRzIG9mIGludm9pY2VzIGJ1dCBubyBzdHJ1Y3R1cmVkIGN1c3RvbWVyIGRhdGFiYXNlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd3STYyY1EycGJCJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2l0aG91dCBjdXN0b21lciBpbmZvcm1hdGlvbiwgcGVyc29uYWxpemVkIG1hcmtldGluZyBiZWNvbWVzIGltcG9zc2libGUuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3ZiUUVNQTRPZm4nLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc1LiBObyBGb2xsb3ctVXAgUHJvY2VzcycsXG4gICAgICAgICAgbGV2ZWw6IDMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ002MGhMVEt3Z2QnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BZnRlciB0aGUgcHVyY2hhc2UsIGNvbW11bmljYXRpb24gc3RvcHMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJy0taW5rbEhNMnYnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5ObyBiaXJ0aGRheSB3aXNoZXMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0VMd1ZFclJGbHonLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5ObyBhbm5pdmVyc2FyeSBtZXNzYWdlcy48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnSkJRQU9aMmdxUycsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk5vIGZlc3RpdmUgZ3JlZXRpbmdzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc3NWhKeXpTMTJDJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gcHJvZHVjdCByZWNvbW1lbmRhdGlvbnMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RoNEVNX0V2OXgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5UaGUgcmVsYXRpb25zaGlwIHF1aWV0bHkgZmFkZXMgYXdheS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnNkxjRTdFQ2RjZycsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzE1IFByb3ZlbiBTdHJhdGVnaWVzIHRvIEluY3JlYXNlIFJlcGVhdCBDdXN0b21lcnMnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdOeDYzMmxJLXdGJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnMS4gTGF1bmNoIGEgR29sZCBTYXZpbmdzIFNjaGVtZSBUaGF0IEtlZXBzIEN1c3RvbWVycyBFbmdhZ2VkJyxcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnSl9BRHB3ZVZmaScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk9uZSBvZiB0aGUgc21hcnRlc3Qgd2F5cyB0byBpbmNyZWFzZSByZXBlYXQgYnVzaW5lc3MgaXMgdGhyb3VnaCBhIHdlbGwtbWFuYWdlZCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+R29sZCBTYXZpbmcgU2NoZW1lPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnUzV1ajAwMGpxYScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkluc3RlYWQgb2Ygd2FpdGluZyBmb3IgY3VzdG9tZXJzIHRvIHJldHVybiBvbmNlIGEgeWVhciwgYSBnb2xkIHNjaGVtZSBlbmNvdXJhZ2VzIG1vbnRobHkgaW50ZXJhY3Rpb24gd2l0aCB5b3VyIGJyYW5kLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd4QnJHcW9UTHJ2JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RXZlcnkgbW9udGhseSBwYXltZW50IGJlY29tZXMgYW5vdGhlciB0b3VjaHBvaW50Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdhYk5COWNPMVpqJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Q3VzdG9tZXJzIHN0YXkgY29ubmVjdGVkLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdHTFhCc0lnTjRtJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VHJ1c3QgZ3Jvd3MuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2UzZ29UR3dLclQnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5GdXR1cmUgcHVyY2hhc2VzIGJlY29tZSBtb3JlIGxpa2VseS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAneU9xekJhVEg3QicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkhvd2V2ZXIsIHJ1bm5pbmcgYSBnb2xkIHNjaGVtZSBtYW51YWxseSBvZnRlbiBjcmVhdGVzIGNoYWxsZW5nZXMgc3VjaCBhcyBtaXNzZWQgaW5zdGFsbWVudHMsIHBhcGVyd29yaywgYW5kIGN1c3RvbWVyIGNvbmZ1c2lvbi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnMW1kXzFWUllUWCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoaXMgaXMgd2h5IG1hbnkgcmV0YWlsZXJzIGFyZSBtb3ZpbmcgdG8gZGlnaXRhbCBnb2xkIHNjaGVtZSBtYW5hZ2VtZW50Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdKWVk4emJYa3hoJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnMi4gU3RvcCBDYWxsaW5nIEN1c3RvbWVycyBNYW51YWxseScsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1YtZHcxZGEzVmwnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JbWFnaW5lIG1hbmFnaW5nIDEsMjAwIGFjdGl2ZSBnb2xkIHNjaGVtZSBtZW1iZXJzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdoVUYxdkR6b1FYJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Q2FsbGluZyBldmVyeSBjdXN0b21lciBldmVyeSBtb250aCBpcyBhbG1vc3QgaW1wb3NzaWJsZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnaWN3cEpPTkN2RicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkluc3RlYWQsIGF1dG9tYXRlOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdUXy1nZTNyRW1NJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnUGF5bWVudCByZW1pbmRlcnMnLFxuICAgICAgICAgICAgJ0R1ZSBkYXRlIGFsZXJ0cycsXG4gICAgICAgICAgICAnRmVzdGl2YWwgZ3JlZXRpbmdzJyxcbiAgICAgICAgICAgICdHb2xkIHJhdGUgdXBkYXRlcycsXG4gICAgICAgICAgICAnTmV3IGNvbGxlY3Rpb24gYW5ub3VuY2VtZW50cycsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnR2lWRTVXY291RScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkF1dG9tYXRlZCBXaGF0c0FwcCByZW1pbmRlcnMgZW5zdXJlIGN1c3RvbWVycyBzdGF5IGluZm9ybWVkIHdoaWxlIGFsbG93aW5nIHlvdXIgc3RhZmYgdG8gZm9jdXMgb24gc2FsZXMgcmF0aGVyIHRoYW4gcmVwZXRpdGl2ZSBmb2xsb3ctdXAgY2FsbHMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzE5STZKYTFMNUInLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICczLiBSZXBsYWNlIFBhcGVyIFBhc3Nib29rcyB3aXRoIERpZ2l0YWwgUGFzc2Jvb2tzJyxcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnMU12VXZGbkJCWScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk9uZSBvZiB0aGUgbW9zdCBjb21tb24gY29tcGxhaW50cyBqZXdlbGxlcnkgcmV0YWlsZXJzIGhlYXIgaXM6PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0xqWjlFLTJNVDYnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOml0YWxpYztmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5cIklcXCd2ZSBsb3N0IG15IHBhc3Nib29rLlwiPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3drYml5TVdSVnEnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Ob3cgeW91ciBzdGFmZiBzcGVuZHMgdmFsdWFibGUgdGltZSBzZWFyY2hpbmcgdGhyb3VnaCByZWNvcmRzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcwb0ZLb1h5SDE4JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QSBkaWdpdGFsIHBhc3Nib29rIGVsaW1pbmF0ZXMgdGhpcyBwcm9ibGVtLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdLYTNpbHBGNEowJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Q3VzdG9tZXJzIGNhbiBpbnN0YW50bHkgdmlldzo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnUTVxZVJvZzdicCcsXG4gICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHN0eWxlOiAndW5vcmRlcmVkJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgJ0luc3RhbG1lbnQgaGlzdG9yeScsXG4gICAgICAgICAgICAnUGF5bWVudCBzdGF0dXMnLFxuICAgICAgICAgICAgJ1JlbWFpbmluZyBiYWxhbmNlJyxcbiAgICAgICAgICAgICdTY2hlbWUgcHJvZ3Jlc3MnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0w3blpPbVFuU2cnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JdCBhbHNvIGJ1aWxkcyB0cmFuc3BhcmVuY3kgYW5kIGNvbmZpZGVuY2UuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3kwcGo2VHZUdFonLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc0LiBCdWlsZCBhIEN1c3RvbWVyIERhdGFiYXNlLCBOb3QgSnVzdCBhIEJpbGxpbmcgRGF0YWJhc2UnLFxuICAgICAgICAgIGxldmVsOiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdqajFObHM2VkZ2JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+TWFueSByZXRhaWxlcnMgaGF2ZSB5ZWFycyBvZiBpbnZvaWNlcyBidXQgdmVyeSBsaXR0bGUgdXNhYmxlIGN1c3RvbWVyIGluZm9ybWF0aW9uLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd6ZTR3RnYyeHB1JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QSBjb21wbGV0ZSBjdXN0b21lciBwcm9maWxlIHNob3VsZCBpbmNsdWRlOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdfSFEtWFU4eHlVJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnQmlydGhkYXknLFxuICAgICAgICAgICAgJ0Fubml2ZXJzYXJ5JyxcbiAgICAgICAgICAgICdQdXJjaGFzZSBoaXN0b3J5JyxcbiAgICAgICAgICAgICdQcmVmZXJyZWQgamV3ZWxsZXJ5IGNhdGVnb3J5JyxcbiAgICAgICAgICAgICdHb2xkIHNjaGVtZSBzdGF0dXMnLFxuICAgICAgICAgICAgJ1Zpc2l0IGhpc3RvcnknLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzUyNklhTzhyWmcnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5UaGlzIGVuYWJsZXMgcGVyc29uYWxpemVkIGNvbW11bmljYXRpb24gdGhhdCBmZWVscyByZWxldmFudCBpbnN0ZWFkIG9mIGdlbmVyaWMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0hUYzlXVUdZYlEnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc1LiBNYWtlIFdoYXRzQXBwIFlvdXIgU3Ryb25nZXN0IE1hcmtldGluZyBDaGFubmVsJyxcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZDZzNXJQMzJ6OCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPllvdXIgY3VzdG9tZXJzIGFscmVhZHkgdXNlIFdoYXRzQXBwIGV2ZXJ5IGRheS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnYVp6U1JmYlYySScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkluc3RlYWQgb2YgcmVseWluZyBvbmx5IG9uIHNvY2lhbCBtZWRpYSwgY29tbXVuaWNhdGUgdGhyb3VnaCB0aGUgcGxhdGZvcm0gdGhleSBjaGVjayBtb3N0IG9mdGVuLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdLZUZlbGh4bjRsJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RXhhbXBsZXMgaW5jbHVkZTo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbm5Ma1BMS19HbScsXG4gICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHN0eWxlOiAndW5vcmRlcmVkJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgJ01vbnRobHkgZ29sZCBzY2hlbWUgcmVtaW5kZXJzJyxcbiAgICAgICAgICAgICdGZXN0aXZhbCB3aXNoZXMnLFxuICAgICAgICAgICAgJ05ldyBhcnJpdmFscycsXG4gICAgICAgICAgICAnQnJpZGFsIGNvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICdHb2xkIHJhdGUgdXBkYXRlcycsXG4gICAgICAgICAgICAnRXhjbHVzaXZlIG9mZmVycycsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZm9nRGY0UGZnUCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkNvbnNpc3RlbnQgY29tbXVuaWNhdGlvbiBrZWVwcyB5b3VyIHN0b3JlIHRvcCBvZiBtaW5kLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdUZjA0VXRxaHA0JyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnNi4gUmV3YXJkIExveWFsdHksIE5vdCBKdXN0IE5ldyBDdXN0b21lcnMnLFxuICAgICAgICAgIGxldmVsOiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4eDMtbExwV3VTJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+TWFueSBqZXdlbGxlcnkgYnVzaW5lc3NlcyBvZmZlciBkaXNjb3VudHMgb25seSB0byBhdHRyYWN0IG5ldyBidXllcnMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0dXLWdpZlRURjgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JbnN0ZWFkLCByZXdhcmQgY3VzdG9tZXJzIHdobyBjb250aW51ZSBjaG9vc2luZyB5b3VyIGJyYW5kLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4Sms5ZlJXc0ozJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SWRlYXMgaW5jbHVkZTo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnT1pJZVhPSHZuTScsXG4gICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHN0eWxlOiAndW5vcmRlcmVkJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgJ0JvbnVzIGdvbGQgYWZ0ZXIgY29tcGxldGluZyBhIHNjaGVtZScsXG4gICAgICAgICAgICAnTG95YWx0eSByZXdhcmRzJyxcbiAgICAgICAgICAgICdSZWZlcnJhbCBpbmNlbnRpdmVzJyxcbiAgICAgICAgICAgICdFeGNsdXNpdmUgcHJldmlld3MnLFxuICAgICAgICAgICAgJ0NvbXBsaW1lbnRhcnkgamV3ZWxsZXJ5IGNsZWFuaW5nJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd3V1l0Q3BBM1dyJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhlc2Ugc21hbGwgZ2VzdHVyZXMgZW5jb3VyYWdlIGxvbmctdGVybSByZWxhdGlvbnNoaXBzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdaZlBqRXNydktNJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiBcIjcuIFJlY292ZXIgQ3VzdG9tZXJzIEJlZm9yZSBUaGV5J3JlIExvc3RcIixcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnQ2FTZUw3S0Q4cScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk5vdCBldmVyeSBpbmFjdGl2ZSBjdXN0b21lciBpcyBnb25lIGZvcmV2ZXIuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzVtem1xam1Ld00nLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JZGVudGlmeSBjdXN0b21lcnMgd2hvIGhhdmVuXFwndCB2aXNpdGVkIGluIHRoZSBsYXN0IDbigJMxMiBtb250aHMgYW5kIHJlY29ubmVjdCB0aGVtIHdpdGg6PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1ZlVDRVLTlhdWgnLFxuICAgICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBzdHlsZTogJ3Vub3JkZXJlZCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICdQZXJzb25hbGl6ZWQgV2hhdHNBcHAgbWVzc2FnZXMnLFxuICAgICAgICAgICAgJ0Zlc3RpdmFsIGludml0YXRpb25zJyxcbiAgICAgICAgICAgICdHb2xkIHNjaGVtZSBvZmZlcnMnLFxuICAgICAgICAgICAgJ05ldyBjb2xsZWN0aW9uIHByZXZpZXdzJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdydTNNbnNRMjdVJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2lubmluZyBiYWNrIGFuIGV4aXN0aW5nIGN1c3RvbWVyIGlzIHVzdWFsbHkgZWFzaWVyIHRoYW4gZmluZGluZyBhIG5ldyBvbmUuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzdncEhfd1BESHMnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc4LiBVc2UgVGVjaG5vbG9neSB0byBTdGF5IE9yZ2FuaXplZCcsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3FWUXVyUG9lSjgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BcyB5b3VyIGN1c3RvbWVyIGJhc2UgZ3Jvd3MsIHNwcmVhZHNoZWV0cyBhbmQgcGFwZXIgcmVnaXN0ZXJzIGJlY29tZSBkaWZmaWN1bHQgdG8gbWFuYWdlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd2YnRLSHhVbnpDJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QSBkaWdpdGFsIHBsYXRmb3JtIHN1Y2ggYXMgPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlBhc3Nib29rQXBwPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPiBoZWxwcyBqZXdlbGxlcnkgcmV0YWlsZXJzOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdONVF6U2VrUWdEJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnTWFuYWdlIGdvbGQgc2F2aW5ncyBzY2hlbWVzJyxcbiAgICAgICAgICAgICdUcmFjayBjdXN0b21lciBwYXltZW50cycsXG4gICAgICAgICAgICAnU2VuZCBhdXRvbWF0ZWQgV2hhdHNBcHAgcmVtaW5kZXJzJyxcbiAgICAgICAgICAgICdNYWludGFpbiBkaWdpdGFsIHBhc3Nib29rcycsXG4gICAgICAgICAgICAnQnVpbGQgY3VzdG9tZXIgcHJvZmlsZXMnLFxuICAgICAgICAgICAgJ01vbml0b3IgY29sbGVjdGlvbnMgZnJvbSBvbmUgZGFzaGJvYXJkJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdYV0c2NHplWEZvJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SW5zdGVhZCBvZiByZXBsYWNpbmcgeW91ciBwZXJzb25hbCBjdXN0b21lciByZWxhdGlvbnNoaXBzLCB0ZWNobm9sb2d5IHN0cmVuZ3RoZW5zIHRoZW0gYnkgZW5zdXJpbmcgbm8gY3VzdG9tZXIgaXMgZm9yZ290dGVuLjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+4oCULS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PdGhlciBzdHJhdGVnaWVzIDwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5MYXVuY2ggYSBHb2xkIFNhdmluZ3MgU2NoZW1lPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2twNUo4ZkFKWTEnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BdXRvbWF0ZSBXaGF0c0FwcCBQYXltZW50IFJlbWluZGVyczwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICduUnRmRUJGVlZDJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+UmVwbGFjZSBQYXBlciBQYXNzYm9va3Mgd2l0aCBEaWdpdGFsIFBhc3Nib29rczwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc1dlE1WFB0SE1TJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QnVpbGQgYSBDdXN0b21lciBEYXRhYmFzZTwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4X2hmVF9nZlJCJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+UGVyc29uYWxpemUgRXZlcnkgQ3VzdG9tZXIgSW50ZXJhY3Rpb248L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnV0ZLbHRlRDhLdicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkNyZWF0ZSBhIEpld2VsbGVyeSBMb3lhbHR5IFByb2dyYW08L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnUFZGTUpwTXdHNCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlJlY292ZXIgSW5hY3RpdmUgQ3VzdG9tZXJzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ01XUlNINEFSQ2InLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BdXRvbWF0ZSBDdXN0b21lciBGb2xsb3ctdXBzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3NqaUt6d0NyZWwnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5DZWxlYnJhdGUgQmlydGhkYXlzICZhbXA7IEFubml2ZXJzYXJpZXM8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnSlFwQlhFNmRscScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlJ1biBGZXN0aXZhbCBNYXJrZXRpbmcgQ2FtcGFpZ25zPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2pnOE9OSGtOamYnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PZmZlciBSZWZlcnJhbCBSZXdhcmRzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzgxYWQ1TDNHRW4nLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5UcmFjayBDdXN0b21lciBQdXJjaGFzZSBIaXN0b3J5PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1Q4Mm93aFhFQ2gnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5TZWdtZW50IEN1c3RvbWVycyBCYXNlZCBvbiBCdXlpbmcgQmVoYXZpb3VyPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzN6VGpjb1YtS3UnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5TZW5kIEdvbGQgUmF0ZSAmYW1wOyBOZXcgQ29sbGVjdGlvbiBVcGRhdGVzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1BtZERaNUpraXInLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JbXByb3ZlIEluLVN0b3JlIEN1c3RvbWVyIEV4cGVyaWVuY2U8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnMTM5eC13aXJBaScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlVzZSBKZXdlbGxlcnkgQ1JNIFNvZnR3YXJlPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1ZVSmQtdFQtRXUnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5NZWFzdXJlIEN1c3RvbWVyIFJldGVudGlvbiBNZXRyaWNzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2sxT2oyekJWZVonLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Db2xsZWN0IEN1c3RvbWVyIEZlZWRiYWNrICZhbXA7IFJldmlld3M8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnekNYb2JVTUpPYicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkFuYWx5emUgQ3VzdG9tZXIgQnV5aW5nIFRyZW5kczwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdTYURZdjFwNnNnJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RGlnaXRpemUgWW91ciBKZXdlbGxlcnkgQnVzaW5lc3Mgd2l0aCBQYXNzYm9va0FwcDwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdpdHN6eC1lZ2hwJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnRmluYWwgVGhvdWdodHMnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdEV1o5WTVEcFRpJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhlIGZ1dHVyZSBvZiBqZXdlbGxlcnkgcmV0YWlsIGJlbG9uZ3MgdG8gYnVzaW5lc3NlcyB0aGF0IGZvY3VzIG5vdCBvbmx5IG9uIGFjcXVpcmluZyBjdXN0b21lcnMgYnV0IGFsc28gb24gcmV0YWluaW5nIHRoZW0uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3NoX19XZnNLc1InLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5FdmVyeSBtaXNzZWQgZm9sbG93LXVwLCBmb3Jnb3R0ZW4gYW5uaXZlcnNhcnksIG9yIGRlbGF5ZWQgcmVtaW5kZXIgaXMgYSBtaXNzZWQgb3Bwb3J0dW5pdHkgdG8gc3RyZW5ndGhlbiBhIGN1c3RvbWVyIHJlbGF0aW9uc2hpcC48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnLXlJVmk3aEcxcCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkJ5IGltcGxlbWVudGluZyBzdHJ1Y3R1cmVkIGN1c3RvbWVyIHJldGVudGlvbiBzdHJhdGVnaWVz4oCUc3VjaCBhcyBnb2xkIHNhdmluZ3Mgc2NoZW1lcywgYXV0b21hdGVkIHJlbWluZGVycywgcGVyc29uYWxpemVkIGVuZ2FnZW1lbnQsIGFuZCBkaWdpdGFsIGN1c3RvbWVyIG1hbmFnZW1lbnTigJR5b3UgY2FuIGluY3JlYXNlIHJlcGVhdCBwdXJjaGFzZXMsIGltcHJvdmUgbG95YWx0eSwgYW5kIGNyZWF0ZSBhIG1vcmUgcHJlZGljdGFibGUgc3RyZWFtIG9mIHJlY3VycmluZyBidXNpbmVzcy48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZnFJQlZpZG9oUScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlBhc3Nib29rQXBwIGlzIGRlc2lnbmVkIHRvIHN1cHBvcnQgdGhpcyBqb3VybmV5IGJ5IGhlbHBpbmcgamV3ZWxsZXJ5IHJldGFpbGVycyBkaWdpdGl6ZSBjdXN0b21lciBtYW5hZ2VtZW50LCBhdXRvbWF0ZSBnb2xkIHNjaGVtZSBvcGVyYXRpb25zLCBhbmQgZGVsaXZlciBhIG1vZGVybiBleHBlcmllbmNlIHRoYXQga2VlcHMgY3VzdG9tZXJzIGNvbWluZyBiYWNrLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdpalJwT25Vc080JyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnMnLFxuICAgICAgICAgIGxldmVsOiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdJQkpjT0RHQkZHJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SG93IGNhbiBhIGpld2VsbGVyeSBzdG9yZSBpbmNyZWFzZSByZXBlYXQgY3VzdG9tZXJzPzwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+IEZvY3VzIG9uIGN1c3RvbWVyIHJldGVudGlvbiB0aHJvdWdoIGdvbGQgc2F2aW5ncyBzY2hlbWVzLCBwZXJzb25hbGl6ZWQgY29tbXVuaWNhdGlvbiwgV2hhdHNBcHAgcmVtaW5kZXJzLCBsb3lhbHR5IHByb2dyYW1zLCBhbmQgcmVndWxhciBlbmdhZ2VtZW50Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdId19saGkxNWM1JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2h5IGRvIGN1c3RvbWVycyBzdG9wIHZpc2l0aW5nIGpld2VsbGVyeSBzdG9yZXM/PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj4gVGhlIG1vc3QgY29tbW9uIHJlYXNvbnMgYXJlIGxhY2sgb2YgZm9sbG93LXVwLCBwb29yIGVuZ2FnZW1lbnQsIGFuZCBjb21wZXRpdG9ycyBtYWludGFpbmluZyBzdHJvbmdlciBjb21tdW5pY2F0aW9uLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdBREJYeWVLUzRlJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2hhdCBpcyB0aGUgYmVzdCBzb2Z0d2FyZSBmb3IgbWFuYWdpbmcgamV3ZWxsZXJ5IGN1c3RvbWVycz88L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPiBBIHBsYXRmb3JtIHRoYXQgY29tYmluZXMgY3VzdG9tZXIgcmVjb3JkcywgZGlnaXRhbCBwYXNzYm9va3MsIGdvbGQgc2NoZW1lIG1hbmFnZW1lbnQsIHBheW1lbnQgdHJhY2tpbmcsIGFuZCBhdXRvbWF0ZWQgcmVtaW5kZXJzIGNhbiBzaW1wbGlmeSBvcGVyYXRpb25zIGFuZCBpbXByb3ZlIHJldGVudGlvbi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnRTRRY1M5aWVPTCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkRvIGdvbGQgc2F2aW5ncyBzY2hlbWVzIGhlbHAgY3VzdG9tZXIgbG95YWx0eT88L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPiBZZXMuIFRoZXkgZW5jb3VyYWdlIHJlZ3VsYXIgbW9udGhseSBpbnRlcmFjdGlvbiwgaW1wcm92ZSByZXRlbnRpb24sIGFuZCBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiBmdXR1cmUgcHVyY2hhc2VzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdkdlhFRmZfQTRCJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnBhc3Nib29rYXBwLmluL2RlbW9cIj5Cb29rIGEgRnJlZSBEZW1vPC9hPicsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgY3JlYXRlZEJ5OiAnUmFqJyxcbiAgICBwb3N0U3VtbWFyeTpcbiAgICAgICdEaXNjb3ZlciAxNSBwcm92ZW4gc3RyYXRlZ2llcyB0byBpbmNyZWFzZSByZXBlYXQgY3VzdG9tZXJzIGluIHlvdXIgamV3ZWxsZXJ5IHN0b3JlIHVzaW5nIGdvbGQgc2NoZW1lcywgV2hhdHNBcHAgcmVtaW5kZXJzLCBjdXN0b21lciByZXRlbnRpb24gc29mdHdhcmUsIGFuZCBkaWdpdGFsIGN1c3RvbWVyIG1hbmFnZW1lbnQuJyxcbiAgICBwb3N0VGl0bGU6ICdIb3cgdG8gSW5jcmVhc2UgUmVwZWF0IEN1c3RvbWVycyBpbiBhIEpld2VsbGVyeSBTdG9yZScsXG4gICAgbmV3UG9zdFRpdGxlOiAnSG93LXRvLUluY3JlYXNlLVJlcGVhdC1DdXN0b21lcnMtaW4tYS1KZXdlbGxlcnktU3RvcmUnLFxuICAgIGJsb2dNZXRhOiB7XG4gICAgICBtZXRhVGl0bGU6ICdIb3cgdG8gSW5jcmVhc2UgUmVwZWF0IEN1c3RvbWVycyBpbiBhIEpld2VsbGVyeSBTdG9yZScsXG4gICAgICBtZXRhRGVzY3JpcHRpb246IHtcbiAgICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgY29udGVudDpcbiAgICAgICAgICAnRGlzY292ZXIgMTUgcHJvdmVuIHN0cmF0ZWdpZXMgdG8gaW5jcmVhc2UgcmVwZWF0IGN1c3RvbWVycyBpbiB5b3VyIGpld2VsbGVyeSBzdG9yZSB1c2luZyBnb2xkIHNjaGVtZXMsIFdoYXRzQXBwIHJlbWluZGVycywgY3VzdG9tZXIgcmV0ZW50aW9uIHNvZnR3YXJlLCBhbmQgZGlnaXRhbCBjdXN0b21lciBtYW5hZ2VtZW50LicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3JlYXRlZFRpbWVTdGFtcDogJzIwMjYtMDctMjJUMTI6MDk6MDkuMDAwKzAwOjAwJyxcbiAgICBwdWJsaXNoZWREYXRlOiBudWxsLFxuICAgIGJsb2dTY2hlZHVsZWREYXRlOiAnMjAyNi0wNy0yMlQwMDowMDowMC4wMDArMDA6MDAnLFxuICAgIGJsb2dTY2hlZHVsZVRpbWU6ICcxNzo0MDoyMCcsXG4gICAga2V5V29yZHM6IHtcbiAgICAgIG5hbWU6ICdrZXl3b3JkcycsXG4gICAgICBjb250ZW50OlxuICAgICAgICAnV2hhdHNBcHAgQ1JNLFdoYXRzQXBwIG1hcmtldGluZyBmb3IgamV3ZWxsZXJzLEpld2VsbGVyeSBXaGF0c0FwcCByZW1pbmRlcnMsSmV3ZWxsZXJ5IEJ1c2luZXNzIEdyb3d0aCcsXG4gICAgfSxcbiAgICBhdXRob3I6IHtcbiAgICAgIG5hbWU6ICdhdXRob3InLFxuICAgICAgY29udGVudDogJ1Bhc3Nib29rYXBwJyxcbiAgICB9LFxuICAgIGJsb2dTdGF0dXM6ICdQVUJMSVNIJyxcbiAgICBibG9nVHlwZTogJ0JVU0lORVNTJyxcbiAgfTtcblxuICB0b2NJdGVtczogVG9jSXRlbVtdID0gW107XG4gIHRvY09wZW4gPSBmYWxzZTtcbiAgYWN0aXZlVG9jSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGluZ0Jsb2NrSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuICBwcml2YXRlIHRvY09ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IG9iamVjdFxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5idWlsZFRhYmxlT2ZDb250ZW50cygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydyZXNwb25zZURhdGEnXSAmJiAhY2hhbmdlc1sncmVzcG9uc2VEYXRhJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0dXBTY3JvbGxTcHkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudG9jT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIGVkaXRTZWN0aW9uKCkge1xuICAgIC8vIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHNjcm9sbFRvQmxvY2soZXZlbnQ6IEV2ZW50LCBibG9ja0lkOiBzdHJpbmcpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAucXVlcnlTZWxlY3RvcihgI2Jsb2NrLSR7YmxvY2tJZH1gKVxuICAgICAgPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7XG4gICAgdGhpcy50b2NPcGVuID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVGFibGVPZkNvbnRlbnRzKCkge1xuICAgIGNvbnN0IGJsb2NrczogQmxvZ0Jsb2NrW10gPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmxvY2tzIHx8IFtdO1xuICAgIHRoaXMuaGVhZGluZ0Jsb2NrSWRzLmNsZWFyKCk7XG4gICAgdGhpcy50b2NJdGVtcyA9IGJsb2Nrc1xuICAgICAgLm1hcChibG9jayA9PiB0aGlzLmdldEhlYWRpbmdDYW5kaWRhdGUoYmxvY2spKVxuICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgVG9jSXRlbSA9PiAhIWl0ZW0pO1xuICAgIHRoaXMudG9jSXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuaGVhZGluZ0Jsb2NrSWRzLmFkZChpdGVtLmlkKSk7XG5cbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIC8vIFJlLWF0dGFjaCB0aGUgc2Nyb2xsIHNweSBzaW5jZSB0aGUgYW5jaG9ycyBpdCB3YXRjaGVzIGp1c3QgY2hhbmdlZC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXR1cFNjcm9sbFNweSgpKTtcbiAgICB9XG4gIH1cblxuICBpc1RvY0FuY2hvcihibG9ja0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkaW5nQmxvY2tJZHMuaGFzKGJsb2NrSWQpO1xuICB9XG5cbiAgaGFzVmlzaWJsZVRleHQoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaXBIdG1sKGh0bWwpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRpbmdDYW5kaWRhdGUoYmxvY2s6IEJsb2dCbG9jayk6IFRvY0l0ZW0gfCBudWxsIHtcbiAgICBpZiAoIWJsb2NrPy5pZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGJsb2NrLnR5cGUgPT09ICdoZWFkZXInKSB7XG4gICAgICBjb25zdCBsZXZlbCA9IChibG9jay5kYXRhPy5bJ2xldmVsJ10gYXMgbnVtYmVyKSB8fCAyO1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMuc3RyaXBIdG1sKGJsb2NrLmRhdGE/LlsndGV4dCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gICAgICBpZiAobGV2ZWwgPD0gMSB8fCAhdGV4dCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGlkOiBibG9jay5pZCwgdGV4dCB9O1xuICAgIH1cblxuICAgIGlmIChibG9jay50eXBlID09PSAncGFyYWdyYXBoJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm9sZFBhcmFncmFwaEhlYWRpbmcoYmxvY2spO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb2xkUGFyYWdyYXBoSGVhZGluZyhibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xuICAgIGNvbnN0IGh0bWwgPSAoYmxvY2suZGF0YT8uWyd0ZXh0J10gYXMgc3RyaW5nKSB8fCAnJztcbiAgICBpZiAoIWh0bWwuaW5jbHVkZXMoJzxzcGFuJykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNwYW5SZWdleCA9IC88c3BhbihbXj5dKik+KFtcXHNcXFNdKj8pPFxcL3NwYW4+L2c7XG4gICAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgIGxldCBib2xkVGV4dCA9ICcnO1xuICAgIGxldCBub25Cb2xkVGV4dCA9ICcnO1xuICAgIGxldCBtYXhGb250U2l6ZVB0ID0gMDtcblxuICAgIHdoaWxlICgobWF0Y2ggPSBzcGFuUmVnZXguZXhlYyhodG1sKSkpIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCBpbm5lclRleHQgPSB0aGlzLnN0cmlwSHRtbChtYXRjaFsyXSk7XG4gICAgICBjb25zdCBpc0JvbGQgPSAvZm9udC13ZWlnaHQ6XFxzKihib2xkfFs2LTldMDApL2kudGVzdChzdHlsZSk7XG4gICAgICBjb25zdCBzaXplTWF0Y2ggPSBzdHlsZS5tYXRjaCgvZm9udC1zaXplOlxccyooW1xcZC5dKylwdC9pKTtcbiAgICAgIGlmIChzaXplTWF0Y2gpIHtcbiAgICAgICAgbWF4Rm9udFNpemVQdCA9IE1hdGgubWF4KG1heEZvbnRTaXplUHQsIHBhcnNlRmxvYXQoc2l6ZU1hdGNoWzFdKSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNCb2xkKSB7XG4gICAgICAgIGJvbGRUZXh0ICs9IGlubmVyVGV4dDtcbiAgICAgIH0gZWxzZSBpZiAoaW5uZXJUZXh0KSB7XG4gICAgICAgIG5vbkJvbGRUZXh0ICs9IGlubmVyVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0ID0gYm9sZFRleHQudHJpbSgpO1xuICAgIC8vIE1peGVkIGJvbGQvcGxhaW4gdGV4dCBpcyBhbiBlbXBoYXNpemVkIHBocmFzZSBpbnNpZGUgYSBub3JtYWwgcGFyYWdyYXBoLCBub3QgYSBoZWFkaW5nLlxuICAgIGlmICghdGV4dCB8fCBub25Cb2xkVGV4dC50cmltKCkgfHwgdGV4dC5sZW5ndGggPiAxMjApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBUaXRsZS1zaXplZCBib2xkIHRleHQgKD49MTZwdCwgbWF0Y2hpbmcgdGhlIGFydGljbGUncyBvd24gaGVhZGluZykgaXNuJ3QgYSBUT0MgZW50cnkuXG4gICAgaWYgKG1heEZvbnRTaXplUHQgPj0gMTYpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7IGlkOiBibG9jay5pZCwgdGV4dCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpcEh0bWwoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWh0bWwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxcbiAgICAgIC5yZXBsYWNlKC88W14+XSo+L2csICcnKVxuICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvJmFtcDsvZywgJyYnKVxuICAgICAgLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTY3JvbGxTcHkoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvY09ic2VydmVyPy5kaXNjb25uZWN0KCk7XG5cbiAgICBjb25zdCBhbmNob3JzID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgJy50b2MtYW5jaG9yJ1xuICAgICAgKVxuICAgICk7XG4gICAgaWYgKCFhbmNob3JzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9jT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICBlbnRyaWVzID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IGVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgaWYgKHZpc2libGUubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVUb2NJZCA9IHZpc2libGVbMF0udGFyZ2V0LmlkLnJlcGxhY2UoJ2Jsb2NrLScsICcnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcm9vdE1hcmdpbjogJzBweCAwcHggLTcwJSAwcHgnIH1cbiAgICApO1xuICAgIGFuY2hvcnMuZm9yRWFjaChhbmNob3IgPT4gdGhpcy50b2NPYnNlcnZlcj8ub2JzZXJ2ZShhbmNob3IpKTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYWluLXNlY3Rpb25cIj5cbiAgPGRpdiBjbGFzcz1cImJsb2ctY29udGFpbmVyXCI+XG4gICAgPGgxIGNsYXNzPVwiYmxvZy10aXRsZVwiICpuZ0lmPVwicmVzcG9uc2VEYXRhPy5wb3N0VGl0bGVcIj5cbiAgICAgIHt7IHJlc3BvbnNlRGF0YS5wb3N0VGl0bGUgfX1cbiAgICA8L2gxPlxuXG4gICAgPGRpdiBjbGFzcz1cIm1ldGEtYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPlB1YmxpY2F0aW9uIERhdGU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiPnt7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhPy5wdWJsaXNoZWREYXRlIHx8XG4gICAgICAgICAgICByZXNwb25zZURhdGE/LmJsb2dTY2hlZHVsZWREYXRlIHx8XG4gICAgICAgICAgICByZXNwb25zZURhdGE/LmNyZWF0ZWRUaW1lU3RhbXAgfCBkYXRlOiAnZCBNTU1NIHknXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPkF1dGhvcjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLXZhbHVlXCI+e3tcbiAgICAgICAgICByZXNwb25zZURhdGE/LmF1dGhvcj8uY29udGVudCB8fCAn4oCUJ1xuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5SZWFkIFRpbWU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiXG4gICAgICAgICAgPnt7IHJlc3BvbnNlRGF0YT8ucmVhZFRpbWUgfHwgJ+KAlCcgfX0gbWluIHJlYWQ8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPlZpZXdzPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIj57eyByZXNwb25zZURhdGE/LnRvdGFsVmlzaXRzIHx8IDAgfX0rPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmxvZy1sYXlvdXRcIiBbY2xhc3Mud2l0aC10b2NdPVwidG9jSXRlbXMubGVuZ3RoID4gMVwiPlxuICAgICAgPGFzaWRlIGNsYXNzPVwidG9jLXNpZGViYXJcIiAqbmdJZj1cInRvY0l0ZW1zLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwidG9jLXRvZ2dsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvY09wZW4gPSAhdG9jT3BlblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJ0b2NPcGVuXCI+XG4gICAgICAgICAgPHNwYW4+VGFibGUgT2YgQ29udGVudDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvYy10b2dnbGUtaWNvblwiIFtjbGFzcy5vcGVuXT1cInRvY09wZW5cIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9jLWhlYWRlclwiPlRhYmxlIE9mIENvbnRlbnQ8L2Rpdj5cbiAgICAgICAgPG5hdiBjbGFzcz1cInRvYy1saXN0XCIgW2NsYXNzLm9wZW5dPVwidG9jT3BlblwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdG9jIG9mIHRvY0l0ZW1zXCJcbiAgICAgICAgICAgIGNsYXNzPVwidG9jLWxpbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUb2NJZCA9PT0gdG9jLmlkXCJcbiAgICAgICAgICAgIFtocmVmXT1cIicjYmxvY2stJyArIHRvYy5pZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9CbG9jaygkZXZlbnQsIHRvYy5pZClcIj5cbiAgICAgICAgICAgIHt7IHRvYy50ZXh0IH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvYXNpZGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9nLWRldGFpbHNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/LmJsb2Nrc1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdoZWFkZXInICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPGgxICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDFcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oMT5cbiAgICAgICAgICAgIDxoMiAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSAyXCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gM1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDRcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSA1XCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gNlwiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2g2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdwYXJhZ3JhcGgnICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbm5lci10ZXh0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmhlYWRpbmctcGFyYWdyYXBoXT1cImlzVG9jQW5jaG9yKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICdsaXN0J1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAnb3JkZXJlZCdcIj5cbiAgICAgICAgICAgICAgPG9sIGNsYXNzPVwibGlzdC1zdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgaXRlbS5kYXRhLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICA8bGkgW2lubmVySFRNTF09XCJsaXN0XCI+PC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAndW5vcmRlcmVkJ1wiPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGlzdCBvZiBpdGVtLmRhdGEuaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgIDxsaSBbaW5uZXJIVE1MXT1cImxpc3RcIj48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZGVsaW1pdGVyJ1wiIGNsYXNzPVwiY2UtZGVsaW1pdGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnaW1hZ2UnXCIgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uZGF0YS5maWxlLnVybFwiXG4gICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICd0YWJsZSdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDx0YWJsZVxuICAgICAgICAgICAgICAgIFtjbGFzcy50YWJsZS1uby1oZWFkaW5nXT1cIml0ZW0uZGF0YS53aXRoSGVhZGluZ3MgPT09IGZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBpdGVtLmRhdGEuY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQgW2lubmVySFRNTF09XCJpdGVtXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|
|
517
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1ibG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlldy1ibG9nL3ZpZXctYmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZXctYmxvZy92aWV3LWJsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7OztBQXFCaEgsTUFBTSxPQUFPLGlCQUFpQjtJQWdWNUIsWUFDbUIsYUFBNEIsRUFDNUIsV0FBd0IsRUFDeEIsV0FBb0MsRUFDaEMsVUFBa0I7UUFIdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBalY5QyxpQkFBWSxHQUFRO1lBQzNCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsV0FBVyxFQUFFLFFBQVE7WUFDckIsYUFBYSxFQUFFLHNGQUFzRjtZQUNyRyxrQkFBa0IsRUFBRSwrQkFBK0I7WUFDbkQsVUFBVSxFQUFFLEdBQUc7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLEVBQUUsc0NBQXNDO1lBQzVDLFlBQVksRUFBRSxzQ0FBc0M7WUFDcEQsTUFBTSxFQUFFLENBQUM7WUFDVCxTQUFTLEVBQUUsRUFBRTtZ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TyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUNuQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0F4aEJVLGlCQUFpQixvR0FvVmxCLFdBQVc7bUdBcFZWLGlCQUFpQiwwSUNwQzlCLDgyS0F3SUEscWlKRHhHWSxZQUFZLGdYQUFZLDhCQUE4Qjs7NEZBSXJELGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixDQUFDOzswQkF3VjlELE1BQU07MkJBQUMsV0FBVzt5Q0FsVlosWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBQTEFURk9STV9JRCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWNlbnRCbG9nUG9zdFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9yZWNlbnQtYmxvZy1wb3N0LXNlY3Rpb24vcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgVG9jSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEJsb2dCbG9jayB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXZpZXctYmxvZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgUmVjZW50QmxvZ1Bvc3RTZWN0aW9uQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1ibG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdmlldy1ibG9nLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld0Jsb2dDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YTogYW55ID0ge1xyXG4gICAgXCJzdWJJbmR1c3RyeUlkXCI6IG51bGwsXHJcbiAgICBcInN1YkluZHVzdHJ5TmFtZVwiOiBcIlwiLFxyXG4gICAgXCJkaXNwbGF5SWRcIjogXCJCRzE3ODRcIixcclxuICAgIFwiYXJ0aWNsZVNsdWdcIjogXCJDYXNlLVN0dWR5LUhvdy1hLUpld2VsbGVyeS1SZXRhaWxlci1JbmNyZWFzZWQtLUN1c3RvbWVyLUVuZ2FnZW1lbnQtVXNpbmctUGFzc2Jvb2tBcHBcIixcclxuICAgIFwidXBkYXRlZFRpbWVTdGFtcFwiOiBcIjIwMjYtMDgtMDRUMTE6NTk6MjQuMDAwKzAwOjAwXCIsXHJcbiAgICBcInJlYWRUaW1lXCI6IFwiM1wiLFxyXG4gICAgXCJ3b3JkQ291bnRcIjogNjM0LFxyXG4gICAgXCJ0b3RhbFZpc2l0c1wiOiAwLFxyXG4gICAgXCJpZFwiOiBcIjFmMThmZmJkLTNmOTgtNjVjMy1hMzc3LTlkMjlhNzgxYjk3OFwiLFxyXG4gICAgXCJidXNpbmVzc0lkXCI6IFwiMWYxOTU2N2EtY2UyNi02NzkwLThhMTQtYzc4NmZjMDg0YTgyXCIsXHJcbiAgICBcInRpbWVcIjogMCxcclxuICAgIFwidmVyc2lvblwiOiBcIlwiLFxyXG4gICAgXCJibG9ja3NcIjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcInUyelI0UTdBVXlcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiQ2FzZSBTdHVkeTogSG93IGEgSmV3ZWxsZXJ5IFJldGFpbGVyIEluY3JlYXNlZCBDdXN0b21lciBFbmdhZ2VtZW50IGJ5IDQwJSBVc2luZyBQYXNzYm9va0FwcFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAxXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjBVSjFXcWRWZm5cIixcclxuICAgICAgICBcInR5cGVcIjogXCJpbWFnZVwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcImNhcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwid2l0aEJvcmRlclwiOiBmYWxzZSxcclxuICAgICAgICAgIFwid2l0aEJhY2tncm91bmRcIjogZmFsc2UsXHJcbiAgICAgICAgICBcInN0cmV0Y2hlZFwiOiBmYWxzZSxcclxuICAgICAgICAgIFwiZmlsZVwiOiB7XHJcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9pbWFnZXMvMTY5NzUyYzE3ODU4NDQzNTA0NzNDaGF0R1BUJTIwSW1hZ2UlMjBBdWclMjA0JTJDJTIwMjAyNiUyQyUyMDA1XzIyXzE4JTIwUE0ucG5nXCIsXHJcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiNTAwcHhcIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJZSE96bWk1WGc3XCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPkluIHRvZGF54oCZcyBmYXN0LXBhY2VkIHJldGFpbCBtYXJrZXQsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBidWlsZGluZyBsb25nLXRlcm0gY3VzdG9tZXIgbG95YWx0eSBhbmQgbWFpbnRhaW5pbmcgYWN0aXZlIGVuZ2FnZW1lbnQgaXMgYSBtYWpvciBodXJkbGUgZm9yIHRyYWRpdGlvbmFsIGpld2VsZXJzLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gV2hpbGUgZ29sZCBhbmQgc2lsdmVyIHNhdmluZyBzY2hlbWVzIChsaWtlIDEwKzEgbW9udGhseSBkZXBvc2l0IHBsYW5zKSBoYXZlIGxvbmcgYmVlbiB0aGUgYmFja2JvbmUgb2YgY3VzdG9tZXIgYWNxdWlzaXRpb24sPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBtYW5hZ2luZyB0aGVtIHRocm91Z2ggdHJhZGl0aW9uYWwgcGFwZXIgcGFzc2Jvb2tzIG9mdGVuIGxlYWRzIHRvIGxvdyBlbmdhZ2VtZW50LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbWlzc2VkIHBheW1lbnRzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbG9zdCBwaHlzaWNhbCBib29rcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGFuZCB1bHRpbWF0ZSBkcm9wLW9mZnMuPC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIm1vdUVicmZ4N3lcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+Rm9yIG11bHRpLWxvY2F0aW9uIHJldGFpbGVycyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRoZXNlIGNoYWxsZW5nZXMgYXJlIGFtcGxpZmllZC48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFBoeXNpY2FsIHJlZ2lzdGVycyBhbmQgbWFudWFsIGZvbGxvdy11cHMgYXQgZWFjaCBzdG9yZSBtYWtlIGNyZWF0aW5nIGEgdW5pZmllZCB2aWV3IG9mIHRoZSBjdXN0b21lciBsZXQgYWxvbmUgdGhlIGJ1c2luZXNzIHZpcnR1YWxseSBpbXBvc3NpYmxlLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJNN1luODZJZ2pSXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlRoaXMgPC9zcGFuPjxiPmpld2VsbGVyeSBjdXN0b21lciBlbmdhZ2VtZW50IGNhc2Ugc3R1ZHk8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGRlbW9uc3RyYXRlcyBob3cgYSBwcm9taW5lbnQgcmV0YWlsIGpld2VsZXIgbGV2ZXJhZ2VkIDwvc3Bhbj48Yj5QYXNzYm9va0FwcCZuYnNwOzwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj5hIG1vZGVybiA8L3NwYW4+PGI+ZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlczwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4mbmJzcDt0byBvdmVyaGF1bCB0aGVpciBvcGVyYXRpb25zLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYXV0b21hdGUgY3VzdG9tZXIgY29tbXVuaWNhdGlvbiB2aWEgV2hhdHNBcHAsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgZHJpdmUgc2lnbmlmaWNhbnQgYnVzaW5lc3MgZ3Jvd3RoLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCItdzVXc241NG1aXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIkZlYXR1cmVkIFN1Y2Nlc3MgU3Rvcnk6IEhvdyBQYXNzYm9va0FwcCBUb29rIExhZ3UgQmFuZGh1IEpld2VsbGVycyBmcm9tIFJlZ2lzdGVycyB0byBSZWFsLVRpbWVcIixcclxuICAgICAgICAgIFwibGV2ZWxcIjogMlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJ1ZFVFVFB6OXNOXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJjYXB0aW9uXCI6IFwiXCIsXHJcbiAgICAgICAgICBcIndpdGhCb3JkZXJcIjogZmFsc2UsXHJcbiAgICAgICAgICBcIndpdGhCYWNrZ3JvdW5kXCI6IGZhbHNlLFxyXG4gICAgICAgICAgXCJzdHJldGNoZWRcIjogZmFsc2UsXHJcbiAgICAgICAgICBcImZpbGVcIjoge1xyXG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vaW1hZ2VzLzc2NzA0NGMxNzg1ODQzODQ4MjIwU2xpZGUlMjAxNl85JTIwLSUyMDElMjAlMjg0JTI5LnBuZ1wiLFxyXG4gICAgICAgICAgICBcImhlaWdodFwiOiBcIjUwMHB4XCJcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiUEpWVUFocUw1NlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5MYWd1IEJhbmRodSBKZXdlbGxlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhIGxlZ2FjeSBicmFuZCBzaW5jZSAxOTM2IHdpdGggbXVsdGlwbGUgc3RvcmUgbG9jYXRpb25zLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZmFjZWQgYSBjcml0aWNhbCBvcGVyYXRpb25hbCBib3R0bGVuZWNrLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gTWFuYWdpbmcgamV3ZWxsZXJ5IHNhdmluZyBzY2hlbWVzIGFjcm9zcyBudW1lcm91cyBicmFuY2hlcyB1c2luZyBwaHlzaWNhbCByZWdpc3RlcnMgbWVhbnQgcGF5bWVudHMgd2VyZSBkaWZmaWN1bHQgdG8gdHJhY2sgY2VudHJhbGx5LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZm9sbG93LXVwcyB3ZXJlIGRvbmUgbWFudWFsbHksPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgYSBzaW5nbGUsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB1bmlmaWVkIHZpZXcgb2YgdGhlIGJ1c2luZXNzIHdhcyBtaXNzaW5nLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJoenpGZHZTazZmXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlRoZXkgaW1wbGVtZW50ZWQgUGFzc2Jvb2tBcHAgYXMgdGhlaXIgZGVkaWNhdGVkIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgcmV0ZW50aW9uIHNvZnR3YXJlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB0byByZXBsYWNlIHRoZWlyIGVudGlyZSBwYXBlci1iYXNlZCBzeXN0ZW0gd2l0aCBvbmUgZGlnaXRhbCB3b3JrZmxvdyB3aXRob3V0IGRpc3J1cHRpbmcgZXhpc3Rpbmcgb3BlcmF0aW9ucy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiNGZwQ21xNGEwS1wiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGlzIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBjYXNlIHN0dWR5PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBoaWdobGlnaHRzIHRoZSBzcGVjaWZpYyBvdXRjb21lcyBhY2hpZXZlZCBieSBMYWd1IEJhbmRodSB3aXRoIHRoZSBwbGF0Zm9ybTo8L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwid0IzX2E1eFJRLVwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJzdHlsZVwiOiBcInVub3JkZXJlZFwiLFxyXG4gICAgICAgICAgXCJpdGVtc1wiOiBbXHJcbiAgICAgICAgICAgIFwiPGI+Q3VzdG9tZXIgQ29udmVuaWVuY2UgdmlhIERpZ2l0YWwgUGF5bWVudHM6PC9iPiBBIGtleSBmZWF0dXJlIHdhcyBlbmFibGluZyBjdXN0b21lcnMgdG8gcGF5IGZvciB0aGVpciBtb250aGx5IHNjaGVtZXMgZGlnaXRhbGx5LCBjb21wbGV0ZWx5IGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciBhIHN0b3JlIHZpc2l0LlwiLFxyXG4gICAgICAgICAgICBcIjxiPkNlbnRyYWxpemVkIE11bHRpLUxvY2F0aW9uIFZpZXc6PC9iPiBNYW5hZ2VtZW50IG5vdyBoYXMgYSByZWFsLXRpbWUsIGNlbnRyYWxpemVkIHNjaGVtZSB2aWV3IGFjcm9zcyBhbGwgc3RvcmUgbG9jYXRpb25zLCBhIGNydWNpYWwgZWxlbWVudCBvZiB0aGVpciA8Yj5kaWdpdGFsIHRyYW5zZm9ybWF0aW9uIGluIGpld2VsbGVyeSByZXRhaWw8L2I+LlwiLFxyXG4gICAgICAgICAgICBcIjxiPlN0cmVhbWxpbmVkIE9wZXJhdGlvbnM6PC9iPiBNYW51YWwgdHJhY2tpbmcgYW5kIGV4Y2Vzc2l2ZSBwYXBlcndvcmsgaGF2ZSBiZWVuIG5lYXJseSBlbGltaW5hdGVkLCBvcHRpbWl6aW5nIHN0YWZmIHRpbWUgZm9yIHNhbGVzLlwiXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImlPV2hIeHJVR3hcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UmVmbGVjdGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24sPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBNci48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFBhcmFnIExhZ3UsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBEaXJlY3RvciBvZiBMYWd1IEJhbmRodSw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IG5vdGVkOjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCIwNm1MVUZleGRLXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxpPuKAnEFmdGVyIG1vcmUgdGhhbiB0d28geWVhcnMgd2l0aCBQYXNzYm9va0FQUCwgSSBjYW4gY29uZmlkZW50bHkgc2F5IGl04oCZcyBiZWVuIGFuIG91dHN0YW5kaW5nIGV4cGVyaWVuY2UuIFRoZWlyIHN1cHBvcnQgdGVhbSBpcyByZXNwb25zaXZlLCBrbm93bGVkZ2VhYmxlLCBhbmQgdHJ1bHkgY29tbWl0dGVkIHRvIG91ciBncm93dGguIEFueSBqZXdlbGVyIGxvb2tpbmcgdG8gc3RyZWFtbGluZSB0aGVpciBvcGVyYXRpb25zIHdvdWxkIGJlIHdpc2UgdG8gY29uc2lkZXIgUGFzc2Jvb2tBUFAu4oCdPC9pPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjFoVnh2WVUtb0VcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiVGhlIENoYWxsZW5nZTogRnJpY3Rpb24gaW4gVHJhZGl0aW9uYWwgSmV3ZWxsZXJ5IFNhdmluZ3MgU2NoZW1lc1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImRtZkVKZ294Q1pcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+TGFndSBCYW5kaHUncyBleHBlcmllbmNlIHBlcmZlY3RseSBtaXJyb3JzIHRoZSBsYXJnZXIgb3BlcmF0aW9uYWwgY2hhbGxlbmdlIGZhY2VkIGJ5IHRoZSBpbmR1c3RyeS48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IEJlZm9yZSBwYXJ0bmVyaW5nIHdpdGggUGFzc2Jvb2tBcHAsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB0cmFkaXRpb25hbCBtZXRob2RzIGNyZWF0ZWQgYSBwb29yIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgZXhwZXJpZW5jZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj46PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImFwZ1ViS1BPT3dcIixcclxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwic3R5bGVcIjogXCJ1bm9yZGVyZWRcIixcclxuICAgICAgICAgIFwiaXRlbXNcIjogW1xyXG4gICAgICAgICAgICBcIjxiPkhpZ2ggRHJvcC1vZmYgUmF0ZXM6PC9iPiBDdXN0b21lcnMgZnJlcXVlbnRseSBmb3Jnb3QgbW9udGhseSBpbnN0YWxsbWVudHMsIGxlYWRpbmcgdG8gbGFwc2VkIGFjY291bnRzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPkxhY2sgb2YgVmlzaWJpbGl0eTo8L2I+IEN1c3RvbWVycyBjb3VsZG7igJl0IHRyYWNrIHRoZWlyIGFjY3VtdWxhdGVkIGJhbGFuY2Ugb3IgZ29sZCB3ZWlnaHQgaW4gcmVhbC10aW1lLCBkZWNyZWFzaW5nIHRoZWlyIGVtb3Rpb25hbCBpbnZlc3RtZW50IGluIHRoZSBzY2hlbWUuXCIsXHJcbiAgICAgICAgICAgIFwiPGI+TWFudWFsIEFkbWluaXN0cmF0aXZlIEJ1cmRlbjo8L2I+IFN0YWZmIHNwZW50IGNvdW50bGVzcyBob3VycyBhbnN3ZXJpbmcgYmFsYW5jZSBpbnF1aXJpZXMsIGlzc3VpbmcgcmVjZWlwdHMsIGFuZCBtYWtpbmcgbWFudWFsIHJlbWluZGVyIGNhbGxzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPldlYWsgUG9zdC1NYXR1cml0eSBFbmdhZ2VtZW50OjwvYj4gT25jZSBhIHNhdmluZ3Mgc2NoZW1lIG1hdHVyZWQsIHJlZGVlbWluZyB0aGUgZmluYWwgcHJvZHVjdCBmZWx0IHRyYW5zYWN0aW9uYWwgcmF0aGVyIHRoYW4gcmV3YXJkaW5nLCBsZWFkaW5nIHRvIGxvdyByZXBlYXQgZW5nYWdlbWVudC5cIlxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCIxT3hxNlQwVGhkXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIlRoZSBTb2x1dGlvbjogRGlnaXRhbCBUcmFuc2Zvcm1hdGlvbiB3aXRoIFBhc3Nib29rQXBwXCIsXHJcbiAgICAgICAgICBcImxldmVsXCI6IDJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiY0NwclVjOVA3OFwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGUgaW1wbGVtZW50YXRpb24gYXQgTGFndSBCYW5kaHUgbGV2ZXJhZ2VkIFBhc3Nib29rQXBw4oCZcyBjb21wbGV0ZSA8L3NwYW4+PGI+amV3ZWxsZXJ5IENSTSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIDwvc3Bhbj48Yj5qZXdlbGxlcnkgbG95YWx0eSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gY2FwYWJpbGl0aWVzIHRvIG1vZGVybml6ZSBvcGVyYXRpb25zLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gQnkgaW50ZWdyYXRpbmcgdGhlc2Ugc3BlY2lmaWMgdGVjaG5vbG9naWVzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gdGhlIHJldGFpbGVyIHdhcyBhYmxlIHRvIGFjaGlldmUgc2lnbmlmaWNhbnQgZ2FpbnM6PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImJucTJjNFhNMmhcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiMS4gRGlnaXRhbCBQYXNzYm9vayBJbXBsZW1lbnRhdGlvblwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcInZKc0lXNzUzZTJcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UmVwbGFjaW5nIHBoeXNpY2FsIGJvb2tsZXRzIHdpdGggYSBjZW50cmFsaXplZCA8L3NwYW4+PGI+ZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlczwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYWxsb3dlZCBjdXN0b21lcnMgdG8gdmlldyB0aGVpciB0b3RhbCBiYWxhbmNlLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcmVhbC10aW1lIGdvbGQgd2VpZ2h0LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcGFpZCB2cy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHJlbWFpbmluZyBpbnN0YWxsbWVudHMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgZGF0ZXMgb24tZGVtYW5kLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJkZy1QSDhvNkd4XCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjIuIFdoYXRzQXBwIEF1dG9tYXRpb24gYW5kIFJlbWluZGVyc1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIlpvbmY4SFVaeHJcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+RGVwbG95aW5nIDwvc3Bhbj48Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGVuc3VyZWQgY3VzdG9tZXJzIHJlY2VpdmVkIGF1dG9tYXRlZCByZWNlaXB0cyBmb3IgZGlnaXRhbCBwYXltZW50cyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRpbWVseSBpbnN0YWxsbWVudCByZW1pbmRlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgbm90aWZpY2F0aW9ucyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGxlYWRpbmcgdG8gYW4gODUlIGltcHJvdmVtZW50IGluIHNjaGVtZSByZW5ld2Fscy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiOVo1ci1Oa2RJNlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCIzLiBJbnRlZ3JhdGVkIEpld2VsbGVyeSBDUk0gJmFtcDsgTWFuYWdlbWVudFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImgyUVY5U3k2RlpcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UGFzc2Jvb2tBcHDigJlzIGludGVncmF0ZWQgPC9zcGFuPjxiPmpld2VsbGVyeSBtYW5hZ2VtZW50IHNvZnR3YXJlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBwcm92aWRlZCBhIHNpbmdsZSBkYXNoYm9hcmQgZm9yIGN1c3RvbWVyIHB1cmNoYXNlIGhpc3RvcnkgYW5kIHNjaGVtZSBwcm9ncmVzcy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFRoaXMgZGF0YSBnYXZlIHN0b3JlIHN0YWZmIHBlcnNvbmFsaXplZCBpbnNpZ2h0cyB0byB1c2UgZHVyaW5nIHNob3dyb29tIHZpc2l0cy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiaVgtMnU5UXUwOVwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCJSZXN1bHRzOiBUaGUgSW1wYWN0IG9uIEN1c3RvbWVyIEVuZ2FnZW1lbnQgYW5kIEJ1c2luZXNzIEdyb3d0aFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIlU3emNyLWNCcFFcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+V2l0aGluIGp1c3Qgc2l4IG1vbnRocyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRoZSBpbXBsZW1lbnRhdGlvbnMgZHJpdmVuIGJ5IFBhc3Nib29rQXBwIGRlbGl2ZXJlZCB0cmFuc2Zvcm1hdGl2ZSBidXNpbmVzcyByZXN1bHRzOjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJxRWoyNEZaQXljXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInN0eWxlXCI6IFwidW5vcmRlcmVkXCIsXHJcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcclxuICAgICAgICAgICAgXCI8Yj40MCUgSW5jcmVhc2UgaW4gQ3VzdG9tZXIgRW5nYWdlbWVudDo8L2I+IFRoZSBkaWdpdGFsIHBhc3Nib29rIGFwcCBiZWNhbWUgYSBjcml0aWNhbCwgZGFpbHkgdG91Y2hwb2ludCBmb3IgY3VzdG9tZXJzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPjg1JSBJbXByb3ZlbWVudCBpbiBTY2hlbWUgUmVuZXdhbHM6PC9iPiBBdXRvbWF0ZWQgcmVtaW5kZXJzIGVmZmVjdGl2ZWx5IGVsaW1pbmF0ZWQgbWlzc2VkIGluc3RhbGxtZW50cy5cIixcclxuICAgICAgICAgICAgXCI8Yj4zNSUgQm9vc3QgaW4gUmVwZWF0IFB1cmNoYXNlczo8L2I+IFBlcnNvbmFsaXplZCBDUk0gaW5zaWdodHMgYWxsb3dlZCB0YXJnZXRlZCBvZmZlcnMgdXBvbiBtYXR1cml0eS5cIixcclxuICAgICAgICAgICAgXCI8Yj43MCUgUmVkdWN0aW9uIGluIE9wZXJhdGlvbmFsIFdvcmtsb2FkOjwvYj4gRWxpbWluYXRpbmcgbWFudWFsIHRyYWNraW5nIGZyZWVkIHN0YWZmIGZvciBoaWdoLXZhbHVlIHNhbGVzLCBtaXJyb3JpbmcgTGFndSBCYW5kaHUncyBhZG1pbmlzdHJhdGl2ZSBzYXZpbmdzLlwiXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIms2ckhOeDNEMWpcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiS2V5IFRha2Vhd2F5cyBmb3IgSmV3ZWxsZXJ5IE1lcmNoYW50c1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIk1BSFFmZHZnX3NcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+VGhlIHN1Y2Nlc3NmdWwgPC9zcGFuPjxiPmpld2VsbGVyeSBzb2Z0d2FyZSBzdWNjZXNzIHN0b3J5PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBvZiByZXRhaWxlcnMgbGlrZSBMYWd1IEJhbmRodSBwcm92ZXMgdGhhdCBtb2Rlcm5pemF0aW9uIGlzIGtleSB0byBzdXN0YWluYWJsZSA8L3NwYW4+PGI+amV3ZWxsZXJ5IGJ1c2luZXNzIGdyb3d0aDwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj46PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjM1YTg1UnE0QzNcIixcclxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwic3R5bGVcIjogXCJvcmRlcmVkXCIsXHJcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcclxuICAgICAgICAgICAgXCI8Yj5MZXZlcmFnZSB0aGUgUmlnaHQgVGVjaCBmb3IgWW91ciBTY2FsZTo8L2I+IEFzIGEgPGI+amV3ZWxsZXJ5IENSTSBjYXNlIHN0dWR5PC9iPiBmb3IgbXVsdGktbG9jYXRpb24gYnVzaW5lc3NlcyBzaG93cywgY2VudHJhbGl6ZWQgdmlzaWJpbGl0eSBpcyBlc3NlbnRpYWwgZm9yIG9wZXJhdGlvbmFsIGNvbnRyb2wgYW5kIHBlcnNvbmFsaXplZCBzZXJ2aWNlLlwiLFxyXG4gICAgICAgICAgICBcIjxiPk1lZXQgQ3VzdG9tZXJzIFdoZXJlIFRoZXkgQXJlOjwvYj4gTW9kZXJuIGJ1eWVycyBkZW1hbmQgbW9iaWxlIGFjY2Vzcy4gQSA8Yj5kaWdpdGFsIHBhc3Nib29rIGZvciBqZXdlbGxlcnkgc3RvcmVzPC9iPiB3aXRoIGRpZ2l0YWwgcGF5bWVudCBvcHRpb25zIGlzIGEgYmFzZWxpbmUgZXhwZWN0YXRpb24uXCIsXHJcbiAgICAgICAgICAgIFwiPGI+QXV0b21hdGUgZm9yIEVmZmljaWVuY3k6PC9iPiBJbnRlZ3JhdGluZyA8Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+IGNyZWF0ZXMgaGlnaC1pbXBhY3QgY29tbXVuaWNhdGlvbiB3aXRoIG1pbmltYWwgbWFudWFsIGVmZm9ydC5cIlxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJLWlIwcGpQWXpnXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIlJlYWR5IHRvIEVsZXZhdGUgWW91ciBKZXdlbGxlcnkgU3RvcmUncyBFbmdhZ2VtZW50P1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIk4tblFGQlJvVF9cIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+SWYgeW91IGFyZSBsb29raW5nIHRvIHNjYWxlIHlvdXIgamV3ZWxsZXJ5IGJ1c2luZXNzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZWxpbWluYXRlIG1hbnVhbCBhZG1pbmlzdHJhdGl2ZSBoYXNzbGUgbGlrZSBwaHlzaWNhbCByZWdpc3RlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgaW5jcmVhc2UgY3VzdG9tZXIgbG95YWx0eSw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGl0J3MgdGltZSB0byB1cGdyYWRlIHlvdXIgdGVjaCBzdGFjay48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiSjVxclhkRTNsdlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5TZWUgaG93IFBhc3Nib29rQXBwIGhlbHBzIGpld2VsbGVyeSBidXNpbmVzc2VzIGF1dG9tYXRlIHNhdmluZ3Mgc2NoZW1lcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGltcHJvdmUgcmVuZXdhbHMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBpbmNyZWFzZSByZXBlYXQgcHVyY2hhc2VzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIGJ1aWxkIGxvbmctdGVybSBjdXN0b21lciBsb3lhbHR5Ljwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJyNWtDRk81MDNXXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxiPjxhIGhyZWY9XFxcImh0dHBzOi8vd3d3LnBhc3Nib29rYXBwLmluL2RlbW9cXFwiPkJvb2sgYSBGcmVlIFBhc3Nib29rQXBwIERlbW8gVG9kYXk8L2E+PC9iPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgXCJjcmVhdGVkQnlcIjogXCJSYWpcIixcclxuICAgIFwicG9zdFN1bW1hcnlcIjogXCJEaXNjb3ZlciBob3cgSmV3ZWxsZXJ5IHJldGFpbGVycyBlbGltaW5hdGVkIG1hbnVhbCByZWdpc3RlcnMsIGluY3JlYXNlZCBjdXN0b21lciBlbmdhZ2VtZW50LCBhbmQgc3RyZWFtbGluZWQgc2F2aW5ncyBzY2hlbWVzIHVzaW5nIFBhc3Nib29rQXBwLlwiLFxyXG4gICAgXCJwb3N0VGl0bGVcIjogXCJDYXNlIFN0dWR5OiBIb3cgYSBKZXdlbGxlcnkgUmV0YWlsZXIgSW5jcmVhc2VkICBDdXN0b21lciBFbmdhZ2VtZW50IFVzaW5nIFBhc3Nib29rQXBwXCIsXHJcbiAgICBcIm5ld1Bvc3RUaXRsZVwiOiBcIkNhc2UtU3R1ZHktSG93LWEtSmV3ZWxsZXJ5LVJldGFpbGVyLUluY3JlYXNlZC0tQ3VzdG9tZXItRW5nYWdlbWVudC1Vc2luZy1QYXNzYm9va0FwcFwiLFxyXG4gICAgXCJibG9nTWV0YVwiOiB7XHJcbiAgICAgIFwibWV0YVRpdGxlXCI6IFwiQ2FzZSBTdHVkeTogSG93IGEgSmV3ZWxsZXJ5IFJldGFpbGVyIEluY3JlYXNlZCAgQ3VzdG9tZXIgRW5nYWdlbWVudCBVc2luZyBQYXNzYm9va0FwcFwiLFxyXG4gICAgICBcIm1ldGFEZXNjcmlwdGlvblwiOiB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiZGVzY3JpcHRpb25cIixcclxuICAgICAgICBcImNvbnRlbnRcIjogXCJEaXNjb3ZlciBob3cgSmV3ZWxsZXJ5IHJldGFpbGVycyBlbGltaW5hdGVkIG1hbnVhbCByZWdpc3RlcnMsIGluY3JlYXNlZCBjdXN0b21lciBlbmdhZ2VtZW50LCBhbmQgc3RyZWFtbGluZWQgc2F2aW5ncyBzY2hlbWVzIHVzaW5nIFBhc3Nib29rQXBwLlwiXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBcImNyZWF0ZWRUaW1lU3RhbXBcIjogXCIyMDI2LTA4LTA0VDExOjU4OjM3LjAwMCswMDowMFwiLFxyXG4gICAgXCJwdWJsaXNoZWREYXRlXCI6IG51bGwsXHJcbiAgICBcImJsb2dTY2hlZHVsZWREYXRlXCI6IFwiMjAyNi0wOC0wNFQwMDowMDowMC4wMDArMDA6MDBcIixcclxuICAgIFwiYmxvZ1NjaGVkdWxlVGltZVwiOiBcIjE3OjI5OjI0XCIsXHJcbiAgICBcImtleVdvcmRzXCI6IHtcclxuICAgICAgXCJuYW1lXCI6IFwia2V5d29yZHNcIixcclxuICAgICAgXCJjb250ZW50XCI6IFwiZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlcyxKZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCxqZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBzb2Z0d2FyZSxqZXdlbGxlcnkgQ1JNIHNvZnR3YXJlLGpld2VsbGVyeSBjdXN0b21lciBleHBlcmllbmNlXCJcclxuICAgIH0sXHJcbiAgICBcImF1dGhvclwiOiB7XHJcbiAgICAgIFwibmFtZVwiOiBcImF1dGhvclwiLFxyXG4gICAgICBcImNvbnRlbnRcIjogXCJQYXNzYm9va2FwcFwiXHJcbiAgICB9LFxyXG4gICAgXCJibG9nU3RhdHVzXCI6IFwiUFVCTElTSFwiLFxyXG4gICAgXCJibG9nVHlwZVwiOiBcIkJVU0lORVNTXCJcclxuICB9XHJcblxyXG4gIHRvY0l0ZW1zOiBUb2NJdGVtW10gPSBbXTtcclxuICB0b2NPcGVuID0gZmFsc2U7XHJcbiAgYWN0aXZlVG9jSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGhlYWRpbmdCbG9ja0lkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xyXG4gIHByaXZhdGUgdG9jT2JzZXJ2ZXI/OiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogb2JqZWN0XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XHJcbiAgICB0aGlzLnJlY29yZFZpc2l0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlc1sncmVzcG9uc2VEYXRhJ10gJiYgIWNoYW5nZXNbJ3Jlc3BvbnNlRGF0YSddLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XHJcbiAgICAgIHRoaXMucmVjb3JkVmlzaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvdW50cyBvbmUgcHVibGljIHZpZXcgcGVyIGJsb2cgcGVyIGJyb3dzZXIgc2Vzc2lvbiwgcGVyIHRoZSBcIkluY3JlbWVudCBibG9nIHZpc2l0c1wiIHNwZWM6XHJcbiAgLy8gUFVUIGJ1c2luZXNzL2Jsb2cvdXBkYXRlL3tibG9nSWR9LCBmaXJlLWFuZC1mb3JnZXQsIGd1YXJkZWQgc28gcmVmcmVzaC9yZS1yZW5kZXIgZG9lc24ndCBkb3VibGUtY291bnQuXHJcbiAgcHJpdmF0ZSByZWNvcmRWaXNpdCgpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYmxvZ0lkID0gdGhpcy5yZXNwb25zZURhdGE/LmlkO1xyXG4gICAgaWYgKCFibG9nSWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2Vzc2lvbktleSA9IGBibG9nLXZpc2l0LSR7YmxvZ0lkfWA7XHJcbiAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzZXNzaW9uS2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHNlc3Npb25LZXksICcxJyk7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmluY3JlbWVudEJsb2dWaXNpdChibG9nSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHsgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHsgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXR1cFNjcm9sbFNweSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRvY09ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGVyb0ltYWdlQmxvY2tJZCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGJsb2NrczogQmxvZ0Jsb2NrW10gPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmxvY2tzIHx8IFtdO1xyXG4gICAgcmV0dXJuIGJsb2Nrcy5maW5kKGJsb2NrID0+IGJsb2NrLnR5cGUgPT09ICdpbWFnZScpPy5pZCA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRhZ3MoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMucmVzcG9uc2VEYXRhPy5rZXlXb3Jkcz8uY29udGVudDtcclxuICAgIGlmICghY29udGVudCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udGVudFxyXG4gICAgICAuc3BsaXQoJywnKVxyXG4gICAgICAubWFwKCh0YWc6IHN0cmluZykgPT4gdGFnLnRyaW0oKSlcclxuICAgICAgLmZpbHRlcigodGFnOiBzdHJpbmcpID0+IHRhZy5sZW5ndGggPiAwKTtcclxuICB9XHJcblxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgLy8gdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9CbG9jayhldmVudDogRXZlbnQsIGJsb2NrSWQ6IHN0cmluZykge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5xdWVyeVNlbGVjdG9yKGAjYmxvY2stJHtibG9ja0lkfWApXHJcbiAgICAgID8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pO1xyXG4gICAgdGhpcy50b2NPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkVGFibGVPZkNvbnRlbnRzKCkge1xyXG4gICAgY29uc3QgYmxvY2tzOiBCbG9nQmxvY2tbXSA9IHRoaXMucmVzcG9uc2VEYXRhPy5ibG9ja3MgfHwgW107XHJcbiAgICB0aGlzLmhlYWRpbmdCbG9ja0lkcy5jbGVhcigpO1xyXG4gICAgdGhpcy50b2NJdGVtcyA9IGJsb2Nrc1xyXG4gICAgICAubWFwKGJsb2NrID0+IHRoaXMuZ2V0SGVhZGluZ0NhbmRpZGF0ZShibG9jaykpXHJcbiAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFRvY0l0ZW0gPT4gISFpdGVtKTtcclxuICAgIHRoaXMudG9jSXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuaGVhZGluZ0Jsb2NrSWRzLmFkZChpdGVtLmlkKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XHJcbiAgICAgIC8vIFJlLWF0dGFjaCB0aGUgc2Nyb2xsIHNweSBzaW5jZSB0aGUgYW5jaG9ycyBpdCB3YXRjaGVzIGp1c3QgY2hhbmdlZC5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldHVwU2Nyb2xsU3B5KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNUb2NBbmNob3IoYmxvY2tJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkaW5nQmxvY2tJZHMuaGFzKGJsb2NrSWQpO1xyXG4gIH1cclxuXHJcbiAgaGFzVmlzaWJsZVRleHQoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdHJpcEh0bWwoaHRtbCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SGVhZGluZ0NhbmRpZGF0ZShibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xyXG4gICAgaWYgKCFibG9jaz8uaWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJsb2NrLnR5cGUgPT09ICdoZWFkZXInKSB7XHJcbiAgICAgIGNvbnN0IGxldmVsID0gKGJsb2NrLmRhdGE/LlsnbGV2ZWwnXSBhcyBudW1iZXIpIHx8IDI7XHJcbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnN0cmlwSHRtbChibG9jay5kYXRhPy5bJ3RleHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xyXG4gICAgICBpZiAobGV2ZWwgPD0gMSB8fCAhdGV4dCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IGlkOiBibG9jay5pZCwgdGV4dCwgbGV2ZWwgfTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gJ3BhcmFncmFwaCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm9sZFBhcmFncmFwaEhlYWRpbmcoYmxvY2spO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCb2xkUGFyYWdyYXBoSGVhZGluZyhibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xyXG4gICAgY29uc3QgaHRtbCA9IChibG9jay5kYXRhPy5bJ3RleHQnXSBhcyBzdHJpbmcpIHx8ICcnO1xyXG4gICAgaWYgKCFodG1sLmluY2x1ZGVzKCc8c3BhbicpKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNwYW5SZWdleCA9IC88c3BhbihbXj5dKik+KFtcXHNcXFNdKj8pPFxcL3NwYW4+L2c7XHJcbiAgICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XHJcbiAgICBsZXQgYm9sZFRleHQgPSAnJztcclxuICAgIGxldCBub25Cb2xkVGV4dCA9ICcnO1xyXG4gICAgbGV0IG1heEZvbnRTaXplUHQgPSAwO1xyXG5cclxuICAgIHdoaWxlICgobWF0Y2ggPSBzcGFuUmVnZXguZXhlYyhodG1sKSkpIHtcclxuICAgICAgY29uc3Qgc3R5bGUgPSBtYXRjaFsxXTtcclxuICAgICAgY29uc3QgaW5uZXJUZXh0ID0gdGhpcy5zdHJpcEh0bWwobWF0Y2hbMl0pO1xyXG4gICAgICBjb25zdCBpc0JvbGQgPSAvZm9udC13ZWlnaHQ6XFxzKihib2xkfFs2LTldMDApL2kudGVzdChzdHlsZSk7XHJcbiAgICAgIGNvbnN0IHNpemVNYXRjaCA9IHN0eWxlLm1hdGNoKC9mb250LXNpemU6XFxzKihbXFxkLl0rKXB0L2kpO1xyXG4gICAgICBpZiAoc2l6ZU1hdGNoKSB7XHJcbiAgICAgICAgbWF4Rm9udFNpemVQdCA9IE1hdGgubWF4KG1heEZvbnRTaXplUHQsIHBhcnNlRmxvYXQoc2l6ZU1hdGNoWzFdKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzQm9sZCkge1xyXG4gICAgICAgIGJvbGRUZXh0ICs9IGlubmVyVGV4dDtcclxuICAgICAgfSBlbHNlIGlmIChpbm5lclRleHQpIHtcclxuICAgICAgICBub25Cb2xkVGV4dCArPSBpbm5lclRleHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0ZXh0ID0gYm9sZFRleHQudHJpbSgpO1xyXG4gICAgLy8gTWl4ZWQgYm9sZC9wbGFpbiB0ZXh0IGlzIGFuIGVtcGhhc2l6ZWQgcGhyYXNlIGluc2lkZSBhIG5vcm1hbCBwYXJhZ3JhcGgsIG5vdCBhIGhlYWRpbmcuXHJcbiAgICBpZiAoIXRleHQgfHwgbm9uQm9sZFRleHQudHJpbSgpIHx8IHRleHQubGVuZ3RoID4gMTIwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gVGl0bGUtc2l6ZWQgYm9sZCB0ZXh0ICg+PTE2cHQsIG1hdGNoaW5nIHRoZSBhcnRpY2xlJ3Mgb3duIGhlYWRpbmcpIGlzbid0IGEgVE9DIGVudHJ5LlxyXG4gICAgaWYgKG1heEZvbnRTaXplUHQgPj0gMTYpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgaWQ6IGJsb2NrLmlkLCB0ZXh0LCBsZXZlbDogMiB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdHJpcEh0bWwoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgIGlmICghaHRtbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaHRtbFxyXG4gICAgICAucmVwbGFjZSgvPFtePl0qPi9nLCAnJylcclxuICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnICcpXHJcbiAgICAgIC5yZXBsYWNlKC8mYW1wOy9nLCAnJicpXHJcbiAgICAgIC50cmltKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwU2Nyb2xsU3B5KCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvY09ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcblxyXG4gICAgY29uc3QgYW5jaG9ycyA9IEFycmF5LmZyb20oXHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcclxuICAgICAgICAnLnRvYy1hbmNob3InXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICBpZiAoIWFuY2hvcnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvY09ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxyXG4gICAgICBlbnRyaWVzID0+IHtcclxuICAgICAgICBjb25zdCB2aXNpYmxlID0gZW50cmllcy5maWx0ZXIoZW50cnkgPT4gZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xyXG4gICAgICAgIGlmICh2aXNpYmxlLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVUb2NJZCA9IHZpc2libGVbMF0udGFyZ2V0LmlkLnJlcGxhY2UoJ2Jsb2NrLScsICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgcm9vdE1hcmdpbjogJzBweCAwcHggLTcwJSAwcHgnIH1cclxuICAgICk7XHJcbiAgICBhbmNob3JzLmZvckVhY2goYW5jaG9yID0+IHRoaXMudG9jT2JzZXJ2ZXI/Lm9ic2VydmUoYW5jaG9yKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1zZWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJibG9nLWNvbnRhaW5lclwiPlxuICAgIDxoMSBjbGFzcz1cImJsb2ctdGl0bGVcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8ucG9zdFRpdGxlXCI+XG4gICAgICB7eyByZXNwb25zZURhdGEucG9zdFRpdGxlIH19XG4gICAgPC9oMT5cblxuICAgIDxkaXYgY2xhc3M9XCJtZXRhLWJhclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5QdWJsaWNhdGlvbiBEYXRlPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIj57e1xuICAgICAgICAgIHJlc3BvbnNlRGF0YT8ucHVibGlzaGVkRGF0ZSB8fFxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhPy5ibG9nU2NoZWR1bGVkRGF0ZSB8fFxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhPy5jcmVhdGVkVGltZVN0YW1wIHwgZGF0ZTogJ2QgTU1NTSB5J1xuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5BdXRob3I8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiPnt7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhPy5hdXRob3I/LmNvbnRlbnQgfHwgJ+KAlCdcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZXRhLWl0ZW1cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLWxhYmVsXCI+UmVhZCBUaW1lPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIlxuICAgICAgICAgID57eyByZXNwb25zZURhdGE/LnJlYWRUaW1lIHx8ICfigJQnIH19IG1pbiByZWFkPC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5WaWV3czwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLXZhbHVlXCI+e3sgcmVzcG9uc2VEYXRhPy50b3RhbFZpc2l0cyB8fCAwIH19Kzwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhZ3Mtcm93XCIgKm5nSWY9XCJ0YWdzLmxlbmd0aFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2hpcFwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiPnt7IHRhZyB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJibG9nLWxheW91dFwiIFtjbGFzcy53aXRoLXRvY109XCJ0b2NJdGVtcy5sZW5ndGggPiAxXCI+XG4gICAgICA8YXNpZGUgY2xhc3M9XCJ0b2Mtc2lkZWJhclwiICpuZ0lmPVwidG9jSXRlbXMubGVuZ3RoID4gMVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJ0b2MtdG9nZ2xlXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9jT3BlbiA9ICF0b2NPcGVuXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInRvY09wZW5cIj5cbiAgICAgICAgICA8c3Bhbj5UYWJsZSBPZiBDb250ZW50PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9jLXRvZ2dsZS1pY29uXCIgW2NsYXNzLm9wZW5dPVwidG9jT3BlblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2MtaGVhZGVyXCI+VGFibGUgT2YgQ29udGVudDwvZGl2PlxuICAgICAgICA8bmF2IGNsYXNzPVwidG9jLWxpc3RcIiBbY2xhc3Mub3Blbl09XCJ0b2NPcGVuXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0b2Mgb2YgdG9jSXRlbXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0b2MtbGlua1wiXG4gICAgICAgICAgICBbY2xhc3MudG9jLXRvcF09XCJ0b2MubGV2ZWwgPD0gMlwiXG4gICAgICAgICAgICBbc3R5bGUucGFkZGluZ0xlZnQucHhdPVwiKHRvYy5sZXZlbCAtIDIpICogMTRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUb2NJZCA9PT0gdG9jLmlkXCJcbiAgICAgICAgICAgIFtocmVmXT1cIicjYmxvY2stJyArIHRvYy5pZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9CbG9jaygkZXZlbnQsIHRvYy5pZClcIj5cbiAgICAgICAgICAgIHt7IHRvYy50ZXh0IH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvYXNpZGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9nLWRldGFpbHNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/LmJsb2Nrc1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdoZWFkZXInICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPGgxICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDFcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oMT5cbiAgICAgICAgICAgIDxoMiAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSAyXCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gM1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDRcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSA1XCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gNlwiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2g2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdwYXJhZ3JhcGgnICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbm5lci10ZXh0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmhlYWRpbmctcGFyYWdyYXBoXT1cImlzVG9jQW5jaG9yKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICdsaXN0J1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAnb3JkZXJlZCdcIj5cbiAgICAgICAgICAgICAgPG9sIGNsYXNzPVwibGlzdC1zdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgaXRlbS5kYXRhLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICA8bGkgW2lubmVySFRNTF09XCJsaXN0XCI+PC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAndW5vcmRlcmVkJ1wiPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGlzdCBvZiBpdGVtLmRhdGEuaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgIDxsaSBbaW5uZXJIVE1MXT1cImxpc3RcIj48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZGVsaW1pdGVyJ1wiIGNsYXNzPVwiY2UtZGVsaW1pdGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2ltYWdlJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MuaGVyby1pbWFnZV09XCJpdGVtLmlkID09PSBoZXJvSW1hZ2VCbG9ja0lkXCI+XG4gICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJpdGVtLmRhdGEuZmlsZS51cmxcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWFnZS1jYXB0aW9uXCIgKm5nSWY9XCJpdGVtLmRhdGE/LmNhcHRpb25cIj57e1xuICAgICAgICAgICAgICBpdGVtLmRhdGEuY2FwdGlvblxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGFibGUnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8dGFibGVcbiAgICAgICAgICAgICAgICBbY2xhc3MudGFibGUtbm8taGVhZGluZ109XCJpdGVtLmRhdGEud2l0aEhlYWRpbmdzID09PSBmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGEgb2YgaXRlbS5kYXRhLmNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkIFtpbm5lckhUTUxdPVwiaXRlbVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHNpbXBvLXJlY2VudC1ibG9nLXBvc3Qtc2VjdGlvblxuICAgICAgW3BvcHVsYXJdPVwidHJ1ZVwiXG4gICAgICBbYnVzaW5lc3NJZF09XCJyZXNwb25zZURhdGE/LmJ1c2luZXNzSWRcIlxuICAgICAgW2V4Y2x1ZGVCbG9nSWRdPVwicmVzcG9uc2VEYXRhPy5pZFwiXG4gICAgICBbZWRpdF09XCJmYWxzZVwiPlxuICAgIDwvc2ltcG8tcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|